2つの実行中のプロセスインスタンスがあります。そのうちの1つは「驚くべきことです」と断続的にSTDOUTにエラーを印刷することです。
破損したプロセスを終了したいが、間違ったプロセスを終了しないようにしてください。それらはほぼ同じ時間に始まり、使用すると両方top
ともほぼ同じ量のメモリとCPUを使用することがわかります。どのプロセスが正しく実行されなかったかを示す情報が見つからないようです。
最も安全な方法は、どのプロセス/pidがSTDOUTに書き込まれているかを調べることです。
これを行う方法はありますか?
ベストアンサー1
SIGSTOPを送信して両方のプロセスを停止できます(pid1とpid2を実際にPIDまたは使用killall
およびアプリケーション名):
kill -SIGSTOP pid1 pid2
端末(またはstdoutがリダイレクトされる場所)での印刷を停止する必要があります。それでは、次のいずれかを試してください。
kill -SIGCONT pid1
エラーメッセージがすぐに表示される場合は、これが最初のプロセスであることがわかります。そうでない場合は、再び停止して2番目の作業を続行できます。
停止したプロセスを終了する前にSIGCONTを送信することをお勧めします。
Ctrl-Z
シェルジョブ制御(fg %1
、、、、…)にも同じ技術を使用できます。bg %1
kill %1