スクリプトがマイルストーン間隔で実行されている間にスクリプトの実行時間を監視して通知を生成する方法はありますか?
AFAICS はwait
常に bash でブロックされます。
cron電子メールを鎮圧するためにSTDOUT、STDERRキャプチャでこれを使用する予定ですが、スクリプトが予想されるウィンドウを超えると(終了せずに)通知を受けたいと思います。
Googleは、私が探しているものではないtime
もの(追加のロジックなし)を引き続き通知します。timeout
ベストアンサー1
プロセスをバックグラウンドで実行し、次のループのようなものを使用して監視するのはどうですか?この場合、カウンタを設定することもできます。たとえば、必要以上に3倍かかる場合は、プロセスを終了できます。
# Interval for checking status
readonly interval=10
# Your task here, maybe with some output redirections
sleep 100 &
# Infinite loop
while true
do
# Chill some time
sleep "$interval"
# Check if the background process still exists
if ps -p "$!" &> /dev/null
then
# Do something here, again maybe with >> logfile
echo "Process is still running!"
fi
done