CTRl+Zの挙動が正確にはどうなっているのか、興味津々で戸惑っていました
フォアグラウンドでプロセスを実行しているときに、ctrl+zを押すとバックグラウンドになります
しかし、具体的にはどうなるのか
仕事を続けているのか、それとも中断されて、その時点で停止しているのか
その時点で止められたらバックグランドジョブの意味とは
94 None 2012-09-13
バックグラウンドジョブ」とは、ユーザと対話しないジョブのことで、ttyを制御しておらず、(一般的には無言で)自分の仕事をしているだけのものです。フォアグラウンドジョブはその逆で、ユーザと対話するために tty の制御を保持します
Control-Z は、直近のフォアグラウンドプロセス (tty と対話する最後のプロセス) を一時停止します (シェルが通常行うように、そのプロセスが一時停止を無視する措置を取らない限り)。ここで、bg
コマンドを入力すると、一時停止したばかりのプロセスをバックグラウンドに移動させる (実行を継続させる) ことができ、fg
コマンドを入力するとフォアグラウンドに戻すことができます
80 mah 2012-09-13
Ctrl+Z を押すと TSTP
シグナルがプロセスに送られます。これは実行を停止し(カーネルはプロセスにこれ以上のCPU時間をスケジュールしません)、プロセスは処理を継続するためのCONTを待っています
これをkill -TSTP
とkill -CONT
を介してエミュレート/複製することができます(kill
は名前にもかかわらず、あなたのプロセスに指名されたシグナルを送信するので!)
シェルはプロセスを「背景」にする機能を持っていますが、これはシェルとプロセスの関係です。プロセス自体には ‘background’ や ‘foreground’ という概念はありません
詳細はこちらをご覧ください
64 Brian Agnew 2012-09-13
このコマンドは、私のラップトップで約4.5秒かかると考えてください
echo 2^10000000 | bc -lq | wc -c
Ctrl+Zを押すと計算が中断されます。fg
を使ってフォアグラウンドで計算を再開するか、bg
を使ってバックグラウンドで計算を再開するかの選択肢があります。後者は多かれ少なかれ実行と同等です
echo 2^10000000 | bc -lq | wc -c &
16 Bolo 2012-09-13
ctrl+zキーを押すとプロセスが中断され、停止します。fgでは中断したジョブをフォアグラウンドに移動させることができ、bgではバックグラウンドで実行することができます
詳細はhttp://linuxreviews.org/beginner/jobs/をご覧ください
9 alexclooze 2012-09-13