スーパーユーザーから一般ユーザーに変更しようとして「exit」と入力すると、ジョブが停止したというエラーメッセージが表示され、rootとしてログアウトできません。だから私は役職をリストしました。
#jobs
[1]+ yes | apt-get install build-essential
タスクをシェルバックグラウンドからフォアグラウンドに移した。
fg 1
これでCtrl + Cを押すと簡単に終了できると思いましたが、Ctrl + Cを押すたびに "^c"以外は何も起こりません。 Ctrl + Zを押すとプロンプトに戻りますが、ジョブはまだ残っているので#が付いています。
答え1
^C
割り込み信号(SIGINT
)を生成します。プログラムは、この信号をブロックしたり、完全に無視したり、致命的ではない方法で「反応」したりできます。
たとえば、プログラムが現在実行中のすべてのタスクを停止しますが、完全に終了しないようにしたい場合があります。
だから^C
常に動作するわけではありません。
^Z
ジョブを停止してからkill %1
(ここで%1はリストの数字jobs
)、終了信号()を送信してSIGTERM
問題を解決します。