ぶら下がっている仕事を殺すために、私は使用します Ctrl+c、ハングしているジョブに割り込み信号を送信します。時には、これは仕事を止めません、少なくともすぐには。その後、使用できます Ctrl+z ジョブを一時停止してから、kill %1
(またはジョブの数に関係なく)で強制終了します。
なぜですか Ctrl+z より強力 Ctrl+c 仕事を邪魔するのですか?時々、 Ctrl+z 動作します。そのような状況で使用できる他のキーの組み合わせはありますか?
stty -a
を試しましたが、リストされている他のキーの組み合わせはどれも私には何の役にも立ちません。
Ctrl+C (制御文字intr
):SIGINT
シグナルをプロセスに送信し、通常、アプリケーションはアボートしますが、アプリケーションはこのシグナルを処理できます。たとえば、C
言語のsignal()
関数を使用して信号を処理できます。
Ctrl+Z (制御文字susp
):SIGTSTP
信号をプロセスに送信してバックグラウンドに置き、SIGINT
のように処理できます。
プロセスはすぐに殺されません Ctrl+C 待機I/Oがあり、I/Oが完了するまで待機する必要がある場合、アプリケーションはメモリから終了します。
だが Ctrl+Z プロセスとそのI/Oを一時停止します。技術的には、オペレーティングシステムはCPU時間を提供しません。バックグラウンドプロセスを強制終了すると、I/Oとデータが失われる可能性があります。
プロセスを強制終了するには、SIGKILL
または信号番号9が最も強力な信号である必要があります。オペレーティングシステムはすぐに強制終了しますが、プログラムがこの信号に反応する方法がないため、データを失う可能性があります。 。