Não tenho certeza sobre seus scripts python, mas o aplicativo de transmissão inclui um serviço init.d que você deve iniciar, em vez de fazer algo personalizado, como iniciá-lo por meio de uma entrada crontab.
Você pode verificar se o serviço de transmissão está configurado para iniciar em qualquer um dos runlevels do seu sistema.
Exemplo
$ chkconfig --list | grep transm
transmission-daemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Se eles estiverem desligados, você poderá alterá-los para que eles sejam iniciados na reinicialização da seguinte forma:
$ sudo chkconfig --level 345 transmission-daemon on
Agora, quando verificarmos, você verá que está configurado para iniciar nos níveis de execução 3,4, & 5.
$ sudo chkconfig --list | grep transm
transmission-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
Isso cuidará de iniciá-lo na próxima vez que você reiniciar. Para iniciá-lo agora sem precisar reiniciar o sistema, você pode fazer assim:
$ sudo /etc/init.d/transmission-daemon start
Starting transmission-daemon: [ OK ]
$
Outros scripts
Se você quiser ter certeza de que os scripts do Python permaneçam ativos, você pode criar outra entrada do crontab que verifique periodicamente se eles estão sendo executados e, se não, iniciá-los. Ou você pode abandonar a entrada @reboot
crontab todos juntos e apenas ter uma única entrada crontab que verifique periodicamente se eles estão em execução e reiniciá-los se eles morrerem.
Exemplo
Em /etc/cron.d
, você pode criar um arquivo, chkr.cron
, assim:
*/5 * * * * root /usr/local/bin/chkr.bash
Em seguida, crie o script /usr/local/bin/chkr.bash
, que seria assim.
#!/bin/bash
pgrep -f "python default.py" || python default.py
pgrep -f "python MonitorService.py || python MonitorService.py