私はいつもCtrl-Z
端末(標準モード)でビルドすると思いましたが、それによれSIGSTOP
ばman 3 tcsetattr
ビルドされますSIGTSTP
。ただし、どちらの場合も、停止SIGCONT
したプロセスを再開するために使用されます。
Ctrl-Z
生成されないのはなぜですかSIGSTOP
?SIGTSTP
プログラムがこれを異なる方法で処理するのに役立つ状況はありますかSIGSTOP
?
答え1
KILLと同様に、STOPはキャプチャ、ブロック、または無視できません。常に受信プロセスを停止します。一方、TSTPは無視または別の方法で処理できます。たとえば、シェルとEmacsはCtrlZ自分で処理するようにTSTPハンドラを設定します。シェルでのこれらの動作は、押しがCtrlZ常に安全であることを保証し、プロセスが停止して回復不能な端末に閉じ込められないようにします。