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