複数の子PIDを持つプロセスを一時停止する方法(java)

複数の子PIDを持つプロセスを一時停止する方法(java)

実行中のJavaプロセスを「一時停止」しようとしています。だから私は推奨事項を実行しました。

 sudo kill -SIGSTOP <pid_of_java_proc>

しかし、straceを実行すると、次のようになります。

 sudo strace -F -p <pid_of_java_proc> 2>&1

私は次のようなものを見る:

[pid <someotherpid>] sendto(34, "a string...
[pid <yetotherpid>] sendto(34, "different string...

これに基づいて、実際にそのようなことがあると推測します。子供とにかく、プロセスはまだ「停止しません」。

私は何を逃したことがありませんか?親PID「およびすべての子プロセス」をブロックする簡単な方法はありますか? (someotherpid、Yetotherpid)をpsレポートに表示して列挙できないようです。

答え1

試してみました:

sudo kill -SIGSTOP $PID `ps -o pid= --ppid $PID`

これにより、現在のプロセスが停止し、psを使用してすべての直系サブプロセスを見つけて停止します。うまくいかない可能性のある理由には、入れ子になった子(つまり、子に子がある)、または実際には一部のグローバル親(たとえば、initシステム)に属する子が含まれます。

関連情報