プロセスの終了時刻を知るために実行できるコマンドを知りたいです。
私はすでにプロセスを起動し、そのPIDを知っていますが、いつ終了したかを教えてくれるコマンドがあるかどうか知りたいです。
ご協力いただきありがとうございます。
プロセスの終了時刻を知るために実行できるコマンドを知りたいです。
私はすでにプロセスを起動し、そのPIDを知っていますが、いつ終了したかを教えてくれるコマンドがあるかどうか知りたいです。
ご協力いただきありがとうございます。
回答:
これを実行します:
while kill -0 <PID>; do sleep 1; done; echo "Process finished at $(date +"%F %T")."
または、bashスクリプトを作成できます。wait-for-death.sh
:
#!/bin/bash
if ! kill -0 $1; then
echo "Process $1 doesn't exist."
exit 1
fi
while kill -0 $1; do
sleep 1
done
echo "Process $1 finished at $(date +"%F %T")."
次に、実行許可を与えます。
chmod +x wait-for-death.sh
プロセスのPIDを渡して実行します。
./wait-for-death.sh <PID>
while kill -0 <pid>; do ...
より移植性が高く、Linux以外のシステムでも動作します。また、bashを使用する理由はありません。コードではbashismを使用しないため、/bin/sh
ここでは問題ありません。
kill -0
、もっとエレガントなソリューションだと思う。
コマンドtime
はあなたのニーズに合っているかもしれません:
time [options] command [arguments...]
例:
time /local/usr/bin/myProcess arg1 arg2
プロセスtime
が完了すると、プロセスの完了にかかった時間(秒単位)のような統計が表示されます。
マニュアルページを確認するか、このオンラインマニュアルページをご覧ください。
time
、オプションではありません。
at
ください(マンページを参照してください:)man at
。これはジョブとしてキューに入れられ、完了したときなどに通知されます。これは非常に基本的で、Cronに似ていますが、ジョブのシングルショット用です。