プロセスの状態を確認してプロセスが実行されていない場合は、起動するにはcrontabスクリプトをどのように作成する必要がありますか?

プロセスの状態を確認してプロセスが実行されていない場合は、起動するにはcrontabスクリプトをどのように作成する必要がありますか?

qBittorrent-noxは先週までうまく機能しましたが、それ以来Ubuntu 14.04でクラッシュし続けました。理論的にはロギングですが、ログファイルには次の行のみが含まれます。

********情報********
qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
Web UI管理者には必要ありません:admin
Web UI 管理者 jelszó még az alapértelmezett: adminadmin
ビジネスに興味をお持ちですか? Kérlek változtass jelszótプログラムは最高です。
********情報********
qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
Web UI 管理者 felhasználó neve: weylyn1
********情報********
qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
Web UI 管理者 felhasználó neve: weylyn1
********情報********
qBittorrent vezérléséhez, nyisd meg ezt a címet: localhost:8080
Web UI 管理者 felhasználó neve: weylyn1
。だからqbittorrent-noxが実行されているかどうかを5分ごとに確認し、そうでない場合は# service qbittorrent-nox startrootで始まるスクリプトを作成したいと思います。しかし、実行中なら5分ほど待ってからもう一度確認してみてください。競合の解決策が見つかるまで、この回避策を使用したいと思います。

答え1

デーモンが実行されているかどうかをテストする方法は?時々違うよね一部のデーモンにはプロセスIDを持つファイルがあります/var/run/foo.pid。例は次のとおりです/var/run/crond.pid

$ cat /var/run/crond.pid
432

プロセスが実行されている場合は、次のディレクトリがあります/proc

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

したがって、/ procにディレクトリがない場合は、再起動してください。 qBittorrentにこのpidファイルがある場合は、次のことができます。

# 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

ファイルがない場合は、それを使用してプロセスを見つける/var/run必要があります。ps ax | grep qBittorrent

しかし、最善の解決策は、プロセスがクラッシュした理由を見つけることです。

関連情報