【Linux】psコマンドの使い方:プロセスの状態を確認するコマンド

Linux

プロセスを確認するpsコマンドの使い方をまとめました。

psコマンドの概要

psコマンドはLinuxで実行中のプロセス(Process)を確認できるコマンドです。

以下をRed Hat Enterprise Linux 9.5で実行するとpsコマンドのより詳しい説明を確認できます。

man ps

上記のコマンドの実行結果から確認できるpsコマンドのマニュアルを一部抜粋して日本語に翻訳したものが以下になります。

例
       標準構文を使用してシステム上のすべてのプロセスを表示するには、次のようにします。
       To see every process on the system using standard syntax:
          ps -e
          ps -ef
          ps -eF
          ps -ely

       BSD 構文を使用してシステム上のすべてのプロセスを表示するには
       To see every process on the system using BSD syntax:
          ps ax
          ps axu

       プロセス ツリーを印刷するには
       To print a process tree:
          ps -ejH
          ps axjf

       スレッドに関する情報を取得するには
       To get info about threads:
          ps -eLf
          ps axms

       セキュリティ情報を取得するには
       To get security info:
          ps -eo euser,ruser,suser,fuser,f,comm,label
          ps axZ
          ps -eM

       ユーザーの root (実際の有効な ID) として実行されているすべてのプロセスを確認する
       To see every process running as root (real & effective ID) in user
       format:
          ps -U root -u root u

       ユーザー定義の形式ですべてのプロセスを表示するには
       To see every process with a user-defined format:
          ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
          ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
          ps -Ao pid,tt,user,fname,tmout,f,wchan

       syslogd のプロセス ID のみを出力します。
       Print only the process IDs of syslogd:
          ps -C syslogd -o pid=

       PID 42 の名前のみを出力します。
       Print only the name of PID 42:
          ps -q 42 -o comm=

動作しているプロセスをps コマンドとgrepコマンドで確認する

Linuxで動作しているプロセスを以下のコマンドで確認することができます。

ps aux | grep <実行中のコマンドを入力>

例えば、以下のコマンドを実行して、バックグラウンドで実行中のコマンドをpsコマンドで確認するには次のpsコマンドとgrepコマンドを実行する。

# sleep 600 &

&をつけることで、コマンドをバックグラウンドジョブとして実行できる。以下はRHEL9.6での実行例です。

[root@RHEL96 ~]# sleep 600 &
[1] 4500

今実行したsleepコマンドのプロセスをpsコマンドで確認します。

# ps aux | grep sleep

2行目のプロセスは、上記のgrep sleepに反応しています。1行目のsleep 600処理がプロセスとして表示されました。

[root@RHEL96 ~]#  ps aux | grep sleep
root        4500  0.0  0.1 220952  1792 pts/0    S    01:34   0:00 sleep 600
root        4504  0.0  0.1 221676  2304 pts/0    S+   01:35   0:00 grep --color=auto sleep

なお、本記事と別件ですが| grep をつけることで、|より前に実行したコマンドの実行結果に対して文字列で検索をかけることができます。

psコマンドに関連のあるコマンド

man psコマンドを実行した際に以下のコマンドについて以下のように記載されています。

SEE ALSO
       pgrep(1), pstree(1), top(1), proc(5).

pgrep

pgrepは実行中のプロセスからプロセスIDを探せるコマンドです。

 実行中のプロセスの中から、プロセス名やユーザー、グループ、端末名などを表すパターンを使ってプロセスIDを探すコマンドです。パターンには拡張正規表現(第10回)を使用できます。

 コマンド名からプロセスIDを探す際には、pidofコマンドを使うこともできます。

参考:https://atmarkit.itmedia.co.jp/ait/articles/1707/28/news010.html

pstree

pstreeコマンドはプロセスの親子関係をツリー表示することができるコマンドです。

詳細:https://xtech.nikkei.com/it/article/COLUMN/20071204/288730/

top

topコマンドは、実行中のプロセスをCPU使用率が高い順に表示します。

「top」は現在実行中のプロセスをCPU利用率が高い順に表示します。表示はリアルタイムで更新されていき、「q」を入力すると終了します。

【 top 】コマンド――実行中のプロセスをリアルタイムで表示する
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、実行中のプロセスの情報をリアルタイムで表示する「top」コマンドです。

proc

procコマンドは現在のプロセスの状態を表示します。

proc コマンド (Sun Studio 12: dbx コマンドによるデバッグ)

man proc をRHEL9で実行して以下の説明が得られます。

DESCRIPTION
       The proc filesystem is a pseudo-filesystem which provides an  interface to  kernel  data  structures.   It is commonly mounted at /proc.  Typi‐cally, it is mounted automatically by the system, but it  can  also  be mounted manually using a command such as
      proc ファイルシステムは、カーネル データ構造へのインターフェイスを提供する疑似ファイルシステムです。   通常、/proc にマウントされます。  通常、システムによって自動的にマウントされますが、次のようなコマンドを使用して手動でマウントすることもできます。:

           mount -t proc proc /proc

       Most  of the files in the proc filesystem are read-only, but some files are writable, allowing kernel variables to be changed.
       proc ファイルシステム内のファイルのほとんどは読み取り専用ですが、一部のファイルは書き込み可能であり、カーネル変数を変更できます。
タイトルとURLをコピーしました