crontabで停まったら再開して、常に動いている状態にしたい

cronジョブが停止した場合に自動的に再開するようにするには、cronジョブの実行を監視するシェルスクリプトを作成し、そのシェルスクリプトをcronジョブとして実行します。以下は、そのようなシェルスクリプトの例です。

まず、監視スクリプト(例:monitor.sh)を作成します。

bash
#!/bin/bash # 起動するプロセス名 PROCESS_NAME="manage.py value_adjust" # プロセスのPIDを取得 PID=$(pgrep -f "$PROCESS_NAME") # PIDが存在しない場合はプロセスを再起動する if [ -z "$PID" ]; then echo "Process not running. Restarting..." python3 manage.py value_adjust & else echo "Process is running with PID: $PID" fi

このスクリプトは、指定したプロセス名が実行されているかどうかを確認し、プロセスが実行されていない場合には再起動します。プロセスが実行されている場合は、そのPIDを表示します。

次に、このスクリプトを定期的に実行するようにcronジョブを設定します。crontab -eコマンドを使用してcronジョブを編集し、次の行を追加します。

javascript
* * * * * /path/to/monitor.sh >/dev/null 2>&1

このcronジョブは、毎分監視スクリプトを実行します。監視スクリプトは、停止したプロセスを再起動し、常に実行されるようにします。

未分類

Posted by ぼっち