プロセスコンテナを構築しようとしています。コンテナは他のプログラムをトリガーします。たとえば、「&」を使用して実行中のバックグラウンドタスクを起動するbashスクリプト。
私が望んでいる重要な機能はこれです:私がコンテナを殺すとき、その下にスポーンされたすべてのものが殺されるべきです。直接子供だけでなく、その子孫も。
このプロジェクトを始めたとき、プロセスを強制終了すると、その子も自動的に強制終了されると誤って信じていました。私は同じ間違った考えを持っていた人々からのアドバイスを求めてきました。信号をキャッチして子供に殺害を伝えることは可能ですが、ここでは探していません。
xtermを閉じると、その中で実行されていたものはすべて、nohup'dされない限り殺されるので、私は達成したいものを信じています。これには、孤立したプロセスが含まれます。それが私が再現したいものです。
私が探しているのは、Unixセッションに関するものだと思います。
プロセスのすべての子孫を識別する信頼できる方法があれば、それらにも任意のシグナルを送信できると便利です。例:SIGUSR1。
SIGHUP
すると、直接子プロセスに送信されます。ハングアップシグナルのデフォルトハンドラーはプロセスの実行を中止するため、デフォルトルートはすべての子孫を殺すことです。プロセスおよびプロセスグループの詳細をご覧ください。