この記事では、Linuxのシェルでのジョブ制御について詳しく解説します。ジョブ制御は、バックグラウンドでのタスク実行や、複数のタスクの一時停止・再開などを行うための機能です。実際のコード例とその解説、さらに応用例を取り上げ、シェルのジョブ制御の強力な機能を活用する方法を学びます。
目次
ジョブ制御とは
シェルのジョブ制御とは、ユーザが複数のプロセスを同時に実行し、それらを一時停止、バックグラウンドでの実行、再開などを制御するための機能です。特に長時間実行するコマンドをバックグラウンドで実行させたい時や、一時的に中断したい場合に役立ちます。
基本的なジョブ制御のコマンド
バックグラウンドでの実行
シェルコマンドの末尾に `&` を追加することで、コマンドをバックグラウンドで実行できます。
sleep 60 & # 60秒間スリープするコマンドをバックグラウンドで実行
ジョブの一時停止
実行中のジョブを一時停止させるには、Ctrl + Z キーを押します。
ジョブの再開
バックグラウンドで一時停止されたジョブを再開するには、`bg` コマンドを使用します。
bg %1 # ジョブ番号1のジョブをバックグラウンドで再開
ジョブのリスト表示
実行中または一時停止中のジョブのリストを表示するには、`jobs` コマンドを使用します。
jobs # ジョブのリストを表示
応用例
長時間実行するスクリプトの監視
長時間実行するスクリプトがある場合、その途中経過を確認しつつバックグラウンドで実行することができます。
./long_script.sh & # スクリプトをバックグラウンドで実行
tail -f log.txt # スクリプトの途中経過を確認
複数のジョブを同時に実行
複数のコマンドを同時にバックグラウンドで実行し、それぞれの経過を確認することもできます。
command1 & # コマンド1をバックグラウンドで実行
command2 & # コマンド2をバックグラウンドで実行
jobs # 実行中のジョブの状態を確認
ジョブの優先度の変更
実行中のジョブの優先度を変更することで、リソースの利用を調整することができます。
nice -n 10 command & # 優先度を10に設定してコマンドをバックグラウンドで実行
ジョブの終了
実行中のジョブを終了させるには、`kill` コマンドを使用します。
kill %1 # ジョブ番号1のジョブを終了
まとめ
Linuxのシェルのジョブ制御は、複数のタスクを効率的に管理するための強力なツールです。実際の作業でこれらのコマンドを活用することで、作業の効率を大きく向上させることができるでしょう。
コメント