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