独自のプロセスグループでプロセスを開始したい(または、開始後にグループを変更したい)。
- グループ内のプロセスが端末から
Ctrl+に応答するようにするC - コマンドを使用してグループ内のすべてのプロセスを終了できるように、プロセスグループのIDを取得します
kill。
注:試しsetsid prog [args]ましたが、プロセスがターミナルからCtrl + Cに応答せず、新しいプロセスグループIDを取得できませんでした。
setpgrp($pid, $pid)また、Perlとを介してプロセスグループを変更しようとしましたがPOSIX::setpgid($pid, $pid)、役に立ちませんでした。
編集:より大きな問題:
多くの子プロセスを同期的に開始するプロセス(シングルスレッド。「多作」プロセスと呼びましょうP)があります(次々に、前の子プロセスが終了すると新しいプロセスを開始します)。Pターミナルから、その下のプロセスのツリーを強制終了できるようにしたいと思います。Pそのためには、のグループのプロセスを強制終了するように簡単に調整できます。ただし、デフォルトの動作はP、その親プロセスのグループ内にあります。つまり、私が持っていてそのツリーが独自のグループにない限り、グループP内のすべてのプロセスを強制終了すると、親が強制終了されます。PP
P私の意図は、その下の木を殺すことですが、そのP親ではありません。また、Pのコード自体を変更することはできません。