web-dev-qa-db-ja.com

pythonスクリプトのcronウォッチドッグ

pythonスクリプトがあり、失敗するたびに自動的に再起動する必要があります。

私はこの目的のために次の設定でcronを使用しようとしました:

*/2 * * * * pgrep -f handler.py || /usr/bin/Nohup /usr/bin/python3.6 /root/projects/myproject1/handler.py &

ただし、このコマンドをcliで直接実行すると、正常に起動しますが、cronでは機能しません。

Syslogは、Cronがエラーなしでコマンドを実行しようとしたことを示しています。

CRON[10810]: (root) CMD (pgrep -f handler.py || /usr/bin/Nohup /usr/bin/python3.6 /root/projects/myproject1/handler.py &)

スクリプトは、 systemd サービスとして実行するか、 supervisor または同様のプロセス制御システムで実行することをお勧めします。

編集:

理由を明確にするためだけに。ホイールを発明する必要はありません。 systemdとsupervisorの両方が、必要なことを正確に実行します。

2
Jakub Jindra