お兄ちゃん!
音楽を聴きながら
作業をするように
複数のコマンドを
同時に動かせないかな?
ちゃんとそういう仕組みがあるよ!
「バックグラウンド実行」
とよばれるんだ
やっぱりできるんだね!
教えて欲しい!
sleep
は
指定した秒数だけ待機するよ
指定がなければ1秒待機するんだ
sleep [秒数]
好きな秒数で
sleep
を動かしてみよう!長すぎない数字がいいよね3秒でどうかな?
sleep 3
…あっ3秒後ぐらい待たされた後にプロンプトが表示されたよ!
sleep
が終わるまで次の操作ができないよねこれを&
を付けるだけだよコマンド &
今回は長めの方がいいよね?これでどうかな?
sleep 273 &
あっ!すぐにプロンプトが返ってきた!
[1] 5123
しかも
[1]
と何かメッセージが出てきたよsleep
がバックグラウンドで動いてフォアグラウンドで他の操作ができるようになったんだバックグラウンドで動いているプログラムを表示された「ジョブ番号(job number, jobspec)」で ジョブを一意に識別する番号なんだ
[1]
はjobs
コマンドジョブは動作状況が見えにくいよねジョブの確認はどうすればよいのかな?
jobs
はジョブ一覧を表示するよjobs [オプション]... [ジョブ番号]...
ここでは
jobs
だけ実行してみよう!jobs
さっきの
sleep
はバックグラウンドで動いていてくれているかな?[1]+ Running sleep 273 &
おお!
sleep 273 &
が動いているのがわかるね!fg
, bg
コマンドfg
はジョブをフォアグラウンドに移すよforeground の略なんだfg [ジョブ番号]
指定が無ければ最後に実行されたジョブが対象になるよ以下を実行してみよう!
fg
実行したよ!
sleep 273
sleep
がフォアグラウンドになったんだねプロンプトが表示されず待たされ続けているよフォアグラウンドで動いているコマンドをバックグラウンドに戻すこともできるのかな?
できるよ!Ctrl + Z を押してみて
Ctrl + C の割り込みと操作が似ているね
[1]+ Stopped sleep 273
プロンプトが返ってきたよ!
jobs
と同じ感じで番号が出てきた!これはコマンドが一時停止状態になってバックグラウンドに移ったという意味なんだ
bg
は一時停止状態のジョブを再開するよこれは background の略だよbg [ジョブ番号]...
これも
bg
だけで実行しよう!ジョブの指定がなければ直前に一時停止になったジョブを再開するよbg
じゃあ
bg
を実行するね![1]+ sleep 273 &
表示があってすぐプロンプトが返ってきたよ!
ジョブの状況を確認してみよう
jobs
どれどれ…
[1]+ Running sleep 273 &
本当だ!裏でまた動き始めてくれたんだね!
コマンドの後ろに
&
を付けるだけでバックグラウンド実行になるんだね!関連コマンド jobs
, fg
, bg
も学んだよ!バックグラウンド実行されるコマンドは音楽のようにずっと裏で動いて欲しいコマンドや時間のかかる処理などが実行されることが多いよ今意識している操作をフォアグラウンドで進めてLinux を快適に操作しよう!