実行中の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システム)に属する子が含まれます。