Como escrever um script crontab, que irá verificar o status de um processo e iniciá-lo se não estiver sendo executado?

1

qBittorrent-nox que estava funcionando perfeitamente até a semana passada, mas desde então ele sempre falha no meu Ubuntu 14.04. Teoricamente é o log, mas o arquivo de log apenas contém estas linhas:

******** Információ ********
A qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
Web UI adminisztrátor felhasználó neve: admin
Web UI adminisztrátor jelszó még az alapértelmezett: adminadmin
Ez biztonsági kockázatot jelent. Kérlek változtass jelszót a program beállításinál.
******** Információ ********
A qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
Web UI adminisztrátor felhasználó neve: weylyn1
******** Információ ********
A qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
Web UI adminisztrátor felhasználó neve: weylyn1
******** Információ ********
A qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
Web UI adminisztrátor felhasználó neve: weylyn1
. Então, eu gostaria de escrever um script, que irá verificar a cada 5 minutos, se o qbittorrent-nox está sendo executado ou não e se não estiver sendo executado, inicie com # service qbittorrent-nox start (como root). No entanto, se estiver em execução, aguarde mais 5 minutos e verifique novamente. Eu gostaria de usar essa solução alternativa, até que uma solução seja encontrada para o travamento.     
por Weylyn Savan 12.11.2016 / 12:20

1 resposta

0

Como testar se um daemon está sendo executado? Depende. Alguns daemons possuem um arquivo com o ID do processo em /var/run/foo.pid . Um exemplo disso é /var/run/crond.pid .

$ cat /var/run/crond.pid
432

Se o processo estiver em execução, ele terá um diretório em /proc :

$ ls /proc/$(cat /var/run/crond.pid)

Portanto, se o diretório em / proc não existir, podemos reiniciar. Se qBittorrent tiver esse arquivo pid, você pode fazer isso:

# cat <<EOF >/etc/cron.d/restart-qbittorrent-nox
*/5 * * * * /bin/test -e /proc/$(cat /var/run/qbittorrent-nox.pid)/cmdline || service qbittorrent-nox start
EOF

Se você não tiver nenhum arquivo em /var/run , precisará usar ps ax | grep qBittorrent para encontrar o processo.

Mas a melhor solução seria descobrir por que o processo falha ...

    
por 12.11.2016 / 13:31