プロセスを監視する方法はありますか?

プロセスを監視する方法はありますか?

Linuxとunixでプロセスを受け取る方法があるかどうかを知りたいです。プロセスがいつ終了し、プロセス(スクリプト)の終了コードが何であるかを知りたいです。

X数秒間実行され、ps -ef | grep PIDプロセスがまだ存在することを確認するスクリプトを作成したくありません。プロセスが終了した時期と終了コードが何であるかを知らせる方法があるかどうか疑問に思います。

ベストアンサー1

1つの(明らかに厳しい)方法は、次のものを使用することですstrace

$ strace -e trace=none -e signal=none -p 12345

-ePID 12345を使用するプロセスは、システムコール(最初の呼び出し)と信号(2番目の呼び出し-e)をブロックすることによって監視されます。プロセスが通常の方法で終了すると、終了値が印刷されます。

プロセスがシグナルによって終了すると、straceは自動的に終了します(上記のオプションを使用して実行した場合)。たとえば、次のように-e signal=killこの動作を変更できます。ただし、プログラムが信号を受信して​​処理する場合-e signal=all(またはこのオプションを省略した場合-e signal)、大量の出力が生成される可能性があります。

おすすめ記事