$ ps -e -T | grep myp | grep -v grep
797 797 ? 00:00:00 myp
797 798 ? 00:00:00 myp
797 799 ? 00:00:00 myp
797 800 ? 00:00:00 myp
これは、PID = 797のプロセスmyp
と異なるSPIDを持つ4つのスレッドを示しています。
プロセス全体を終了せずにプロセス内の特定のスレッドを終了する方法場合によっては、特定のスレッドに致命的な依存関係がある場合、これはまったく不可能になる可能性があることがわかります。しかし、とにかく可能ですか?うん、どうですか?
試しましたが、kill 799
プロセス自体が終了しました。これでmyp
、プロセスなしで失敗する依存関係があるのか800
、それとも殺すのが些細なので、単一のプロセスを殺すことができないからかどうかはわかりません。
ベストアンサー1
スレッドはプロセスの不可欠な部分であり、プロセスの外部で終了することはできません。一部はpthread_kill関数ですが、スレッド自体のコンテキスト内でのみ機能します。リンクのドキュメントから:
pthread_kill() は、与えられたスレッドのコンテキスト内でのみ信号が処理されるようにします。シグナルアクション(終了または停止)はプロセス全体に影響します。