回答:
「バックグラウンドジョブ」とは、ユーザーと対話していないもののことです。ttyを制御せず、(通常は静かに)実行するだけです。フォアグラウンドジョブはその逆であり、ユーザーと対話するためのttyの制御を保持します。
Control-Zは、最新のフォアグラウンドプロセス(ttyと対話する最後のプロセス)を一時停止します(シェルが通常行うように、そのプロセスが一時停止を無視するステップを実行しない限り)。これにより、通常はシェルに戻り、そこからコマンドbg
を入力して、中断されたプロセスをバックグラウンドに移動する(実行を継続する)かfg
、フォアグラウンドに戻すことができます。
fg
最初にどのジョブを発行するかを特定しjobs
、次にその%1が発行されfb %1
、プロセスが再開されるかどうかを確認し ます
fg %1
ではないfb %1
Ctrl + Zを押すとTSTP
、プロセスにシグナルが送信されます。これにより実行が停止し(カーネルはプロセスにこれ以上CPU時間をスケジュールしません)、プロセスは処理を続行するためにCONTを待機しています。
kill -TSTP
and を介してこれをエミュレート/レプリケートできますkill -CONT
(kill
名前にかかわらず、指定されたシグナルをプロセスに送信します!)
シェルにはプロセスを「バックグラウンド」にする機能がありますが、これはシェルとプロセスの関係です。プロセス自体には、実際には「バックグラウンド」または「フォアグラウンド」の概念がありません。
詳細はこちらをご覧ください。
^Z
SIGTSTP、SIGSTOPない送信
ctrl + zを押すと、プロセスが中断および停止します。fgでは中断されたジョブをフォアグラウンドに移動でき、bgではバックグラウンドで実行できます。
詳細については、http://linuxreviews.org/beginner/jobs/を参照してください。