私はps-watcherでこの問題を解決し、数年前にlinux.comでそれについて書きました。ps-watcherを使用すると、プロセスを監視し、累積実行時間に基づいてプロセスを強制終了できます。プロセスの名前が「foo」であると仮定した場合の、関連するps-watcher構成は次のとおりです。
[foo]
occurs = every
trigger = elapsed2secs('$time') > 1*HOURS && $ppid != 1
action = <<EOT
echo "$command accumulated too much CPU time" | /bin/mail user\@host
kill -TERM $pid
EOT
[foo?]
occurs = none
action = /usr/local/etc/foo restart
キーはラインです
trigger = elapsed2secs('$time') > 1*HOURS && $ppid != 1`
「累積プロセス時間が> 1時間で、私が親プロセスではない場合、再起動してください」と表示されます。
だから、答えはmonitを使用しないが、それは機能することを理解しています。 ps-watcherは軽量でセットアップが簡単なので、monitのセットアップに加えて実行しても問題はありません。