Lから始まるLinux

2章35話
ファイル検索
2章36話 バックグラウンド実行
もくじ
2章37話
プロセス
バックグラウンド実行
若木 みどり
お兄ちゃん! 音楽を聴きながら 作業をするように 複数のコマンドを 同時に動かせないかな?
若木 しげる
ちゃんとそういう仕組みがあるよ! 「バックグラウンド実行」 とよばれるんだ
若木 みどり
やっぱりできるんだね! 教えて欲しい!
フォアグラウンドとバックグラウンド
若木 しげる
sleep 指定した秒数だけ待機するよ 指定がなければ1秒待機するんだ
sleep [秒数]
若木 しげる
好きな秒数で sleep動かしてみよう!
若木 みどり
長すぎない数字がいいよね3秒でどうかな?
sleep 3
若木 みどり(驚き)
…あっ3秒後ぐらい待たされた後にプロンプトが表示されたよ!
若木 しげる
sleep が終わるまで次の操作ができないよねこれを「フォアグラウンド(foreground)」というんだこの「フォアグラウンド」「バックグラウンド」に持っていこうコマンドの最後に & を付けるだけだよ
コマンド &
若木 みどり
今回は長めの方がいいよね?これでどうかな?
sleep 273 &
若木 みどり(驚き)
あっ!すぐにプロンプトが返ってきた!
[1] 5123
若木 みどり
しかも [1]何かメッセージが出てきたよ
若木 しげる
sleep がバックグラウンドで動いてフォアグラウンドで他の操作ができるようになったんだバックグラウンドで動いているプログラムを「ジョブ(job)」というよ
若木 しげる
表示された[1]「ジョブ番号(job number, jobspec)」ジョブを一意に識別する番号なんだ
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 を快適に操作しよう!