Linuxの「ジョブコントロール」をマスターしよう:“応用力”をつけるためのLinux再入門(15)(2/2 ページ)
前回は、シェルがコマンドを実行する際の単位である「ジョブ」について、X環境を使って動作を確かめました。今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です。
バックグラウンドジョブに切り替えるには?
バックグラウンドジョブに対し、端末の“表”で実行するコマンドがフォアグラウンドジョブです。
端末でキーボードを入力すると、フォアグラウンドジョブがその入力を受け取ります。ここで[CTRL]+[Z]キーを入力すると、フォアグラウンドジョブを停止させることができます。
停止させたジョブは、「bg」コマンドでバックグラウンド再開、「fg」コマンドでフォアグラウンド再開させることができます。
bgコマンドとfgコマンドを試してみよう
動作を確認しやすいように、今回もX(X Window System)環境を使用して試してみましょう。
まず、「gnome-system-monitor」で「システムモニター」を起動します。以下の画面4では、「リソース」を表示しています。「リソース」では、CPU使用率などがリアルタイムで表示されています。
gnome-system-monitor
「&」を付けないで実行したため、システムモニター(gnome-system-monitor)はフォアグラウンドで動作中です。プロンプトは表示されていません。
システムモニターを実行したターミナルで、[CTRL]+[Z]キーを入力してみましょう。すると、システムモニターは停止します(画面5)。
ターミナルでbgコマンドを実行すると、停止していたシステムモニターが再開します。バックグラウンドで再開しているため、プロンプトも表示されています(画面6)。
jobsコマンドを実行すると、ジョブ番号[1]でシステムモニター(gnome-system-monitor)が実行中である旨が表示されます。
次に、fgコマンドを実行すると、バックグラウンドで動作しているシステムモニターがフォアグラウンドジョブに切り替わります(画面7)。ここで[CTRL]+[C]キーを入力すると、フォアグラウンドで動作しているシステムモニターが終了します。
コマンドラインでの活用
コマンドラインで実行するコマンドも、[CTRL]+[Z]キーで停止、bgまたはfgコマンドで再開することができます。
ただし、「man」コマンドや「less」コマンド、あるいは「vi(ターミナルで動作するエディタ)」のように、“画面の使用が前提”となっているコマンドの場合は停止のみで、再開させることはできません。
以下は「man bash」でbashのマニュアルを表示している画面です。ここで[CTRL]+[Z]キーを入力します(画面8)。
manが停止してプロンプトが表示されるので、続いて「less /etc/bashrc」でbashの設定ファイルを表示してみましょう(画面9)。
ここで[CTRL]+[Z]キーを入力すると、再びプロンプトが表示されます(画面10)。jobsコマンドを実行すると、2つのジョブが実行中であることが分かります。
プロンプトで「fg %1」または「fg 1」を実行すると、ジョブ番号[1]で実行中のジョブ(この場合はman bash)がフォアグラウンドになります(画面11)。引数なしで「fg」を実行した場合、“直前のジョブ”がフォアグラウンドになります。直前のジョブは、jobsコマンドで表示した際に「+」記号で示されます。
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.