私は好奇心旺盛で、CTRl + Zの動作が正確には何であるかについて混乱していました。
プロセスがフォアグラウンドで実行されていて、Ctrl + Zキーを押すと、バックグラウンドに戻ります。
しかし正確には何が起こりますか。
それは仕事を続けているのか、それとも中断されていたのか、それがその時点で止まったのか。
そしてそれがその時点で止められれば、そしてバックグラウンド・ジョブの意味は何ですか。
「バックグラウンドジョブ」はユーザーと対話していないものです - それはttyを制御しません、そしてそれはただそれをします(一般に静かに)。フォアグラウンドジョブはその逆で、ユーザーと対話するためのttyの制御を保持します。
Control-Zは、最新のフォアグラウンドプロセス(ttyと対話する最後のプロセス)を中断します(シェルが通常行うように、そのプロセスが中断を無視するための手順を実行しない限り)。これは通常シェルに戻ります。そこから通常、中断されたばかりのプロセスをバックグラウンドに移動する(実行を継続させる)コマンドbg
、またはフォアグラウンドに戻すコマンドfg
を入力できます。
このコマンドを検討してください。私のラップトップで4.5秒:
echo 2^10000000 | bc -lq | wc -c
押すとき Ctrl+Z計算は中断されます。 fg
を使用してフォアグラウンドで計算を再開するか、bg
を使用してバックグラウンドで計算を再開するオプションがあります。後者は、実行するのとほぼ同じです。
echo 2^10000000 | bc -lq | wc -c &
Ctrl + Zを押すと、プロセスは中断され、停止します。 fgを使用すると、中断されているジョブをフォアグラウンドに移動できます。bgを使用すると、バックグラウンドで実行できます。
詳しくは http://linuxreviews.org/beginner/jobs/ をご覧ください。