検索
連載

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

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

Share
Tweet
LINE
Hatena
前のページへ |       

親プロセスと子プロセスの関係

 プロセスには“親と子”の関係があります。例えば、bashのプロンプトでpsを動かしている場合、“bashのプロセスが親”で“psのプロセスが子”になります。それぞれ「親プロセス」と「子プロセス」と表現します。

 プロセスの親子の階層は、psコマンドの「f」または「--forest」オプションで表示することができます(画面4)。

ps af

(端末のプロセスを階層表示する)


画面4
画面4 「ps af」で端末のプロセスを階層表示できる

親プロセスのID

 それぞれの子プロセスは、親プロセスのIDも保持しています。「-o」オプションで表示してみましょう。

 以下のコマンド例では、USERとPID、PPID(親プロセスのID)、そしてTTYとCOMMAND欄を表示しています(画面5)。

ps a -o user,pid,ppid,tty,command

(USER、PID、PPID、TTY、COMMANDを表示)


画面5
画面5 親プロセスのID(PPID)を確認する

全てのプロセスを見てみよう

 「ps a」で表示したプロセスは端末(TTY)があるものに限られていました。実際には、背後にもっとたくさんのプロセスが動いています。それらのプロセスも表示するには、「x」オプションを指定します。

ps ax

(全てのユーザー(a)の全てのプロセス(x)を表示する)

ps aux

(ユーザー情報なども含めて、全てのユーザーの全てのプロセスを表示する)


 以下の実行画面では、先ほどと同じ「-o」オプションで、USERとPID、PPID(親プロセスのID)、そしてTTYとCOMMAND欄を表示しています(画面6画面7)。また、情報量が多いので「more」コマンドも使用しました。

画面6
画面6 全てのプロセスを表示した
画面7
画面7 全てのプロセスを表示(画面6の続き)

全てのプロセスの親となるプロセス

 プロセスIDは1から割り振られており()、最初に動くプロセスは「1」です。CentOSの場合は、「systemd」が該当します。Ubuntuの場合、psコマンドでは「init」と表示されますが、「/sbin/init」はシンボリックリンクであり、実体はsystemdです。

【※】最大値は「32768」で、設定によって変更きます(設定値は「cat /proc/sys/kernel/pid_max」で確認可能)。最大値に達すると、再び1から順番に、その時点で使用されていないPIDが割り振られます。



 プロセスIDは「p」または「-p」「--pid」オプションで指定できます。なお、「p」と「-p」「--pid」ではデフォルトの表示内容が変わります()。

【※】「p」はBSDスタイルのオプションです。BSDスタイルのオプションを使用した場合、デフォルトの表示内容は「PID」「TTY」「STAT(コマンドの状態)」「TIME(CPUの使用時間)」「COMMAND(引数付きのコマンド)」となります。「-p」はUNIXオプション、「--pid」はGNUロングオプションと呼ばれているスタイルで、「PID」「TTY」「TIME」「CMD(コマンド名)」が表示されます。



 親のプロセスIDは「--ppid」オプションで表示できます(画面8)。

ps --pid プロセスID

(プロセスIDを指定して表示する)

ps --ppid プロセスID

(親プロセスのプロセスIDを指定して表示する)


画面8
画面8 プロセスIDを指定して表示する

全プロセスをツリー状に表示する

 Linuxのディレクトリはルート(/)からの“ツリー”となっていますが(連載第7回参照)、同じように、プロセスもPID=1、つまり最初に起動したプロセスからのツリーとなっています。 「ps axf」または「pstree」コマンドを使うと、全プロセスのツリーを表示できます(画面9)。

ps axf

(全てのプロセスを親子関係の情報付きで表示する)

pstree

(全てのプロセスをツリー状の図にして表示する)


画面9
画面9 「pstree」コマンドで全てのプロセスをツリー表示できる

筆者紹介

西村 めぐみ(にしむら めぐみ)

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.

前のページへ |       
ページトップに戻る