スクリプトを終了せずにスクリプトの実行時間を監視し、マイルストーン間隔で通知を生成する方法は?

スクリプトを終了せずにスクリプトの実行時間を監視し、マイルストーン間隔で通知を生成する方法は?

スクリプトがマイルストーン間隔で実行されている間にスクリプトの実行時間を監視して通知を生成する方法はありますか?

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

おすすめ記事