プロセスの稼働時間を記録して再起動する方法

プロセスの稼働時間を記録して再起動する方法

以下は、プロセスの稼働時間を確認できることを知っています。

ps -o etime= -p "PID"

ここで、PID = pid番号です。

このプロセスが終わったら、ログを作成して稼働時間を含めたいと思います。終了する正確な時間は大丈夫ですが、必ずしも必要ではありません。自動的に再起動するスクリプトがありますが、安定性を向上させたいです。この場合、プロセスはffmpegです。不安定なソースで非常に低い帯域幅ストリームを実行していますが、プロセスは断続的に失敗します。

1日か2日ほど記録できる場合は、さまざまな構成を試してみて、稼働時間を許容可能な限度まで延長できるかどうかを確認します。

貴重な洞察に感謝します!

答え1

ps -eo pid,comm,lstart,etime,time,args

このコマンドは、複数の時間関連列を持つすべてのプロセスを一覧表示します。grep ffmpeg興味のあるプロセスについて学ぶためのパイプラインです。

前のコマンドの出力には次の列があります。

PID COMMAND                          STARTED     ELAPSED     TIME COMMAND

~によるとPS

PID = Process ID
first COMMAND = only the command name without options and without arguments
STARTED = the absolute time the process was started
ELAPSED = elapsed time since the process was started (wall clock time), format [[dd-]hh:]mm:ss TIME = cumulative CPU time, "[dd-]hh:mm:ss" format
second COMMAND = again the command, this time with all its provided options and arguments

関連情報