Crontab com sudo não funciona no Debian BeagleBone Black

0

No meu dispositivo Beaglebone Black, eu quero executar o código python na inicialização, que é compartilhado aqui link . O código python requer privilégios de superusuário. A versão Debian que eu usei no dispositivo foi instalada com a imagem "Debian 8.7 2017-03-19 4GB SD IOT". O código funciona bem no terminal.

sudo python /home/debian/hmrid/runhmrid.py

Crontab de usuários e raízes Debian não funciona quando eu adiciono a seguinte linha.

@reboot sudo python /home/debian/hmrid/runhmrid.py

Mas outro código que não requer um superusuário está funcionando perfeitamente quando eu adiciono um crontab para um usuário Debian como

@reboot python /home/debian/hmrid/runNotSuperUser.py

    
por acs 28.06.2017 / 20:34

1 resposta

2

Coloque o trabalho no crontab do root com sudo crontab -e as

@reboot /full/path/to/python /home/debian/hmrid/runhmrid.py

Esteja ciente de que o trabalho será executado sem seu ambiente habitual. Isso significa que as variáveis de ambiente que podem afetar a maneira como o Python se comporta podem precisar ser definidas em outro lugar para que o script funcione, se depender delas de alguma forma.

Se você quiser registrar a saída deste comando em um arquivo separado, você pode usar

@reboot /full/path/to/python /home/debian/hmrid/runhmrid.py >/tmp/runhmrid.log 2>&1

Isso registrará qualquer saída da tarefa cron para o arquivo /tmp/runhmrid.log , incluindo mensagens de erro.

Você também pode criar um wrapper de script de shell que configura o ambiente (usando uma série de instruções export ) e inicia seu script Python. Então você pode chamar o script that do cron.

    
por 28.06.2017 / 23:15