子再始動のある親がCTRL-Cに応答しない

子再始動のある親がCTRL-Cに応答しない

私はプログラムを書いた。 Aを終了して再起動する子プロセス(Dと呼ばれる)を作成するプロセス(Aと呼びます)を起動します。問題は、端末でAをうまく終了できないことです(つまり、CTRL-Cを押すと入ることができません)。 AとDのpgidは同じですが、端末はそのプロセスグループを前景に削除したように見えるので、今は信号を送信できません。私は親プロセスが最初に死んだときにこれが起こると思います。これが起こらないようにする方法はありますか?子プロセス(D)が実際に親プロセスであり、端末がプロセスグループを削除しないように前景pgidを変更できますか?

答え1

十分に簡単な解決策:

プロセスAに最初に2番目のプロセスA(A 'と呼ばれる)を実行させます。その後、Aを永久にブロックします。 A'はDを開始でき、DはA'を再開でき、Aは常に親として存在します。

関連情報