Linuxの「プロセス」って何だろう?“応用力”をつけるためのLinux再入門(13)(1/2 ページ)

コンピュータでは「プロセス」と呼ばれる多くの処理が行われています。Linuxの「システムモニター」やWindowsの「タスクマネージャー」、macOSの「アクティビティモニタ」では、さまざまなプロセスが動作している様子を確認できます。今回は「ps」コマンドを通じて、Linuxのプロセスの様子を見ていきましょう。

» 2017年06月23日 05時00分 公開
[西村めぐみ@IT]
「“応用力”をつけるためのLinux再入門」のインデックス

連載目次

Linuxの「プロセス」とは?

 Linuxでは複数の処理が同時に行われており、1つ1つの処理は「プロセス」として管理されています。

 例えば、コマンドプロンプトで「ls」と入力して[Enter]キーを押すと、lsコマンドが実行されます。これを「lsのプロセスが生成される」と表現します。プロセスは、仕事が終わると破棄されます。lsコマンドのプロセスの場合は、ファイルリストの表示が終了するとともに破棄されます。

 対して、シェルのプロセスは、ログイン後あるいは端末アプリケーションの起動とともに開始され、ログアウトまたは端末アプリケーションを閉じるまでメモリに保持されます。

プロセスを見てみよう

 Linuxで動作しているプロセスは、「ps」コマンドで調べることができます。

 psコマンドをオプションを付けずに単独で実行すると、現在の端末で自分が起動したコマンドのプロセスが表示されます。

 他の端末で実行しているプロセスを確認する場合は、「a」オプションを使用します。この場合、他のユーザーが実行しているプロセスも表示されます。さらに「u」オプションを追加して「ps au」と実行すると、ユーザー名なども併せて確認できます。

ps

(現在の端末で実行されている自分のプロセス(自分が起動したプロセス)が表示される)

ps a

(他の端末で実行されているプロセスも表示される)

ps au

(他の端末で実行されているプロセス、ユーザー名などの情報も併せて表示する)


 以下の実行画面では、“X(X Window System)上で端末アプリケーションが2つと、別のクライアントからユーザー「penguin」がsshで接続している”という状況でpsコマンドを実行しています(画面1)。

画面1 画面1 「ps」と「ps au」を実行した結果

 X上の端末ではpsコマンドと「top」コマンド(動作中のプロセスをリアルタイム表示するコマンド)、sshでログインしているユーザーは「man」コマンドを実行しています。manはマニュアルを参照するためのコマンドで、デフォルトでは「less」コマンドを使ってマニュアルの内容を表示します。

端末番号とは?

 動作している端末は「TTY」の列で判別できます。先ほどの画面1をあらためて見てみましょう(画面2)。X()が「tty1」と表示されており、このコンピュータの1つ目の端末で動作していることが分かります。

画面2 画面2 「ps」と「ps au」を実行した結果(画面1と同内容)

【※】CentOSでの実行ファイル名は「Xorg」なので「COMMAND」の列で「/usr/bin/Xorg」と表示されています。



 X上で動作する「xterm」などの端末アプリケーションや、telnetやsshによるログインは「仮想端末(pseudo terminal)」として「pts/番号」で表示されます。

 ここでは「pts/0」上でbashとtopコマンドが、別の端末アプリケーション(pts/1)ではbashとpsコマンドが動作しています。psコマンドを実行したのがこの「pts/1」です。

 また、「pts/2」にはユーザー「penguin」がsshでログインしていることが分かります。bashとman、そしてmanから呼び出されたlessコマンドが実行中です。

プロセスIDとは?

 プロセスには、それぞれ“固有の番号”が割り振られます。これを「プロセスID(PID)」と呼びます。

 例えば、「pts/1」で1回目に実行したpsコマンドのプロセスIDは「4609」になっています(画面3)。

画面3 画面3 「ps」と「ps au」を実行した結果(画面1、画面2でpsコマンドを実行している画面)

 psコマンドは、プロセスを表示してすぐに終了します。2回目に実行したときは新たに「4613」というプロセスIDが割り振られています。

 一方、ログインシェルであるbashは、ログアウトするまで(端末アプリケーションの場合はアプリケーション終了をするまで)メモリに滞在するので、「pts/1」のbashのプロセスIDは「4138」ままです。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。