Linuxとunixでプロセスを受け取る方法があるかどうかを知りたいです。プロセスがいつ終了し、プロセス(スクリプト)の終了コードが何であるかを知りたいです。
X
数秒間実行され、ps -ef | grep PID
プロセスがまだ存在することを確認するスクリプトを作成したくありません。プロセスが終了した時期と終了コードが何であるかを知らせる方法があるかどうか疑問に思います。
ベストアンサー1
1つの(明らかに厳しい)方法は、次のものを使用することですstrace
。
$ strace -e trace=none -e signal=none -p 12345
-e
PID 12345を使用するプロセスは、システムコール(最初の呼び出し)と信号(2番目の呼び出し-e
)をブロックすることによって監視されます。プロセスが通常の方法で終了すると、終了値が印刷されます。
プロセスがシグナルによって終了すると、straceは自動的に終了します(上記のオプションを使用して実行した場合)。たとえば、次のように-e signal=kill
この動作を変更できます。ただし、プログラムが信号を受信して処理する場合-e signal=all
(またはこのオプションを省略した場合-e signal
)、大量の出力が生成される可能性があります。