Ctrl+C
端末を押すと、SIGINT
信号はフォアグラウンドプロセスグループに送信されます。
これで、端末から別の信号を送信できるようになります(例Ctrl+Z
:)。これらの信号はすべてフォアグラウンドプロセスグループに送信されますか、それとも一部の信号がバックグラウンドプロセスグループに送信されますか?
答え1
すべてのキーボード信号は、フォアグラウンドプロセスグループにのみ送信されます。
時々、シグナルはセッション内のすべてのプロセスに送信されますが、これらのシグナルは端末で生成されません。シェル(少なくともbash
)がこの信号を受信するとSIGHUP
(デフォルトでは)、この信号をすべての子プロセスに送信します。終了時にすべてのジョブに送信するようにbash
設定できます()。SIGHUP
huponexit