Jump to content 日本-日本語
日本HPホーム 製品 & サービス サポート & ドライバー ソリューション ご購入方法
お問い合わせ

製品とサービス  >  ソフトウェアとOS  >  HP-UX   >  Knowledge-on-Demand  >  UNIXの教科書 応用編

UNIXの教科書 応用編
〜はじめよう! WindowsとLinuxからのステップアップ〜

第5日目:ジョブとプロセスの操作

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
第5日目:ジョブとプロセスの操作
応用編も後半に入りました。今月はジョブとプロセスについて学びましょう。これまでは、あるコマンドを実行して完了するのを待ってから、次のコマンドを実行していました。ジョブとプロセスを理解すれば、処理に時間のかかるコマンドを実行している間に、他のコマンドを実行するといったことができるようになります。1時間目はジョブの基礎について、2時間目はジョブの管理とプロセスについて取り上げました。
UNIXの教科書 応用編〜はじめよう! WindowsとLinuxからのステップアップ〜 5日目
ジョブの基本的な取り扱い
ジョブとプロセスの管理
2008年12月
大津 真

UNIXの教科書:登場人物紹介 このリンクをクリックすると、新しいウィンドウが開きます

マリー先生
マリー先生:
コマンドラインで実行中のプログラムはシェルからは「ジョブ」として管理されているの。今回はそのジョブと、システムから見た実行中のプログラムの単位であるプロセスの取り扱いについて説明していきましょう。その前に、前回学んだファイルの圧縮とアーカイブの操作についてなにか質問ありますか?
四色君:
「シェルアーカイブ」というアーカイブ形式があるというのを聞いたのですが……?
四色君
マリー先生
マリー先生:
そうね、シェルアーカイブは最近ではあまり使われないけど覚えておいて損はないでしょう。シェルのコマンドで記述されたプログラムのことをシェルスクリプトと呼ぶのだけど、シェルアーカイブは、シェルスクリプトを利用して作成されたアーカイブなの。

シェルアーカイブは、sharコマンドの引数にアーカイブに格納するファイルまたはディレクトリを指定して作成するの。結果は標準出力に書き出されるので、出力リダイレクション「>」を使用してファイルに書き出してね。たとえば、Documentsディレクトリのシェルアーカイブを「Documents.shar」として作成するには次のようにするの。

$ shar -cmos Documents > Documents.shar

実際に見てみるとわかるけど、作成されたファイルはシェルのコマンドが羅列されたテキストファイルになるの。


<Documement.sharの内容(抜粋)>
LANG=""; export LANG
PATH=/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:$PATH; export PATH
EXIT_STATUS=0

if sum -r </dev/null >/dev/null 2>&1
then
        sumopt='-r'
else
        sumopt=''
fi

echo mkdir - Documents
mkdir Documents

echo mkdir - Documents/2007
mkdir Documents/2007

マリー先生
マリー先生:
シェルアーカイブを解凍するには、次のようにsh(シェル)の引数にアーカイブを指定してね。これでシェルアーカイブ内のシェルスクリプトが実行されてファイルが展開されるわ。

$ sh Documents.shar
mkdir - Documents
mkdir - Documents/2007
x - Documents/2007/ok.txt
x - Documents/2007/ng.txt
x - Documents/2007/readme.txt
mkdir - Documents/2008
〜以下略〜

今日の時間割 ジョブの基本的な取り扱い ジョブとプロセスの管理 練習問題

1時間目:ジョブの基本的な取り扱い

さて、これまで説明してきたいろいろなコマンドの実行例では、あるコマンドを実行してそれが完了するのを待ってから、次のコマンドを実行していました。それでは、たとえばfindコマンドのように処理時間が長いコマンドの場合、実行完了までユーザは次の処理が行えなくなります。それに対して、この時間で説明するバックグラウンドジョブと呼ばれるシェルの機能を使用すると、同じターミナル内で複数のコマンドを同時に実行できるようになります。もちろん、X Window Systemの環境では、ターミナルのウィンドウを複数開いてそれぞれ別のコマンドを実行するといったこともできますが、バックグラウンドジョブは、別のコンピュータからリモートログインした状態でも使えますので、ぜひ覚えておきましょう。

フォアグラウンドジョブとバックグラウンドジョブ

シェルが管理するジョブは「フォアグラウンドジョブ」と「バックグラウンドジョブ」に大別されます。ここでは、X Window Systemで動作するxclockというアナログ時計を例に説明しましょう。通常、ユーザが実行したコマンドはフォアグラウンドジョブとなり、コマンドの完了までプロンプトは戻りません。

たとえば、

$ xclock

と実行すると時計のウィンドウが表示され、そのウィンドウを閉じるまでプロンプトは表示されず、次のコマンドは実行できないわけです。

フォアグラウンドでxclockを実行するとプロンプトは表示されない
図1:フォアグラウンドでxclockを実行するとプロンプトは表示されない

タックス君:
フォアグラウンドジョブをコマンドラインから終了させることはできますか?
タックス君
マリー先生
マリー先生:
「Ctrl + C」キーを押すと強制終了できるわよ。

コマンドをバックグラウンドジョブとして実行する

それに対して、コマンドの後に「&」を付けて実行するとバックグラウンドジョブとなり、プロンプトはすぐに戻ります。[ ]内にジョブを識別するための「ジョブ番号」が表示されます。ジョブ番号は、実行した順に1から始まる整数となります。

$ xclock & 【Enter】
[1]   ←ジョブ番号
$     ←プロンプトがすぐに戻る

四色君:
バックグラウンドジョブは、フォアグラウンドジョブと同じようにちゃんと実行を続けているのですか?
四色君
マリー先生
マリー先生:
もちろん。xclockの場合、背面で実行を続けているかどうかは時計の針が動くことで動作を確認できるでしょう。

バックグラウンドジョブは、複数実行させることができます。続けて、xclockをいくつかバックグラウンドジョブとして実行する例を示します。

$ xclock & 【Enter】
[2]  ←ジョブ番号2
$ xclock & 【Enter】
[3]  ←ジョブ番号3

実行中のジョブを確認する

現在実行中のジョブの一覧は、jobsコマンドで確認できます。

$ jobs 【Enter】
[3] +  Running                    xclock&
[2] -  Running                    xclock&
[1]    Running                    xclock&

この例では、バックグラウンドジョブとして3つのxclockが動作中です。ジョブ番号の後に「+」が表示されているのが「カレントジョブ」と呼ばれるジョブで、通常は最後に実行したジョブです。「-」が表示されているのが「プリビアスジョブ」(直前のジョブ)と呼ばれるジョブで、カレントジョブの1つ前に実行したジョブです。


マリー先生
マリー先生:
jobsはシェルの組み込みコマンドなのよ。
四色君:
組み込みコマンドって、何でしたっけ?
四色君
マリー先生
マリー先生:
UNIXのコマンドは、個別のコマンドファイルとして存在するものと、シェルに内蔵されている組み込みコマンドに大別されるの。あるコマンドが組み込みコマンドかどうかは、そのコマンド名を引数にtypeコマンドを実行すると調べられるわ。コマンドファイルの場合にはその絶対パスが、組み込みコマンドの場合には「shell builtin」と表示されるの。

$ type ln 【Enter】
ln is /usr/bin/ln ←コマンドファイル
$ type jobs 【Enter】
jobs is a shell builtin.  ←組み込みコマンド

休憩時間:システム状況を表示するtopコマンド

現在の、CPUの負荷状況、メモリの使用状況、およびプロセスの一覧を表示するコマンドにtopがあります。topコマンドを実行すると、CPUとメモリの状況、その下にCPUの使用率の高い順にプロセスが表示されます。デフォルトでは、表示は5秒おきに自動的に更新されていきます。
topコマンドを終了するにはQキーを押します。

topコマンドでシステム状況を表示する
図2:topコマンドでシステム状況を表示する

連載記事一覧 1  |  2 次のページへ

本ページの内容は執筆時の情報に基づいており、異なる場合があります。

お問い合わせ

ご購入前のお問い合わせ


ご購入後のお問い合わせ

オンラインサポート
製品の標準保証でご利用いただける無償のサービスです。

ショールーム

ショールーム 導入をご検討のお客様へ
業務アプリケーションの継続・標準化・開発性とシステム担当者様、システム開発者様が抱える悩み・疑問に対する解決策実体験して頂けます。
印刷用画面へ
プライバシー ご利用条件・免責事項 ウェブマスターに連絡