
Linuxでは、実行中のプログラムのインスタンスはプロセスと呼ばれます。 Linuxマシンで作業しているときに、現在実行されているプロセスを確認する必要がある場合があります。
ps
を使用して、実行中のプロセスに関する情報を検索するために使用できるコマンドがいくつかあります。 、 pstree
、および top
最も一般的に使用されるものです。
この記事では、 ps
の使用方法について説明します 現在実行中のプロセスを一覧表示し、それらのプロセスに関する情報を表示するコマンド。
ps
の使用方法 コマンド#
ps
の一般的な構文 コマンドは次のとおりです:
ps [OPTIONS]
歴史的および互換性の理由から、 ps
コマンドは、いくつかの異なるタイプのオプションを受け入れます:
- UNIXスタイルのオプション。先頭にダッシュが1つ付いています。
- BSDスタイルのオプション。ダッシュなしで使用されます。
- GNUの長いオプション。前に2つのダッシュがあります。
さまざまなオプションタイプを混在させることができますが、特定のケースでは競合が発生する可能性があるため、1つのオプションタイプを使用することをお勧めします。
BSDとUNIXのオプションをグループ化できます。
最も単純な形式では、オプションなしで使用すると、 ps
現在のシェルで実行されている少なくとも2つのプロセス、シェル自体、およびコマンドが呼び出されたときにシェルで実行されたプロセスの4列の情報を出力します。
ps
出力には、シェルに関する情報が含まれます( bash
)およびこのシェルで実行されているプロセス( ps
、入力したコマンド):
PID TTY TIME CMD
1809 pts/0 00:00:00 bash
2043 pts/0 00:00:00 ps
4つの列にはPID
というラベルが付いています 、 TTY
、 TIME
、および CMD
。
-
PID
-プロセスID。通常、ps
を実行する場合 コマンド、ユーザーが探している最も重要な情報はプロセスPIDです。 PIDを知っていると、誤動作しているプロセスを強制終了できます。 -
TTY
-プロセスの制御端末の名前。 時間コード> -プロセスの累積CPU時間(分と秒で表示)。
-
CMD
-プロセスの開始に使用されたコマンドの名前。
上記の出力は、多くの情報が含まれていないため、あまり役に立ちません。 ps
の真の力 コマンドは、追加のオプションを指定して起動すると表示されます。
ps
コマンドは、プロセスの特定のグループとプロセスに関するさまざまな情報を表示するために使用できる膨大な数のオプションを受け入れますが、日常の使用に必要なのはほんの一握りです。
ps
次のオプションの組み合わせで最も頻繁に使用されます:
BSDフォーム :
ps aux
-
a
オプションはps
に指示します すべてのユーザーのプロセスを表示します。ターミナルに関連付けられていないプロセスとグループリーダーのプロセスのみが表示されます。 -
u
プロセスに関する詳細情報を提供するユーザー指向の形式を表します。 -
x
オプションはps
に指示します 制御端末なしでプロセスを一覧表示します。これらは主に、起動時に開始され、バックグラウンドで実行されるプロセスです。
このコマンドは、 USER
というラベルの付いた11列に情報を表示します 、 PID
、%CPU
、%MEM
、 VSZ
、 RSS
、 STAT
、 START
、 TTY
、 TIME
、および CMD
。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd]
...
PID
についてはすでに説明しました 、 TTY
、 TIME
およびCMD
ラベル。他のラベルの説明は次のとおりです:
ユーザー
-プロセスを実行するユーザー。-
%CPU
-プロセスのcpuutilization。 -
%MEM
-マシン上の物理メモリに対するプロセスの常駐セットサイズのパーセンテージ。 -
VSZ
-KiBでのプロセスの仮想メモリサイズ。 -
RSS
-プロセスが使用している物理メモリのサイズ。 -
STAT
-Z
などのプロセス状態コード (ゾンビ)、S
(スリープ)、およびR
(実行中)。 -
START
-コマンドが開始された時刻。
f
オプションはps
に指示します 親から子へのプロセスのツリービューを表示するには:
ps auxf
ps
コマンドを使用すると、出力を並べ替えることもできます。たとえば、メモリ使用量に基づいて出力を並べ替えるには、次を使用します。
ps aux --sort=-%mem
UNIXフォーム :
ps -ef
-
-e
オプションはps
に指示します すべてのプロセスを表示します。 -
-f
プロセスに関する詳細情報を提供するフルフォーマットのリストを表します。
このコマンドは、 UID
というラベルの付いた8つの列に情報を表示します 、 PID
、 PPID
、 C
、 STIME
、 TIME
、および CMD
。
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:47 ? 00:00:01 /sbin/init
root 2 0 0 19:47 ? 00:00:00 [kthreadd]
...
まだ説明されていないラベルの意味は次のとおりです。
-
UID
-USER
と同じ 、プロセスを実行するユーザー。 -
PPID
-親プロセスのID。 -
C
-%CPU
と同じ 、プロセスのCPU使用率。 -
STIME
-START
と同じ 、コマンドが開始された時刻。
特定のユーザーとして実行されているプロセスのみを表示するには、次のコマンドを入力します。ここで、 linuxize
ユーザーの名前です:
ps -f -U linuxize -u linuxize
ユーザー定義のフォーマット#
o
オプションを使用すると、 ps
の実行時に表示される列を指定できます コマンド。
たとえば、 PID
に関する情報のみを印刷するには およびCOMMAND
、次のいずれかのコマンドを実行します。
ps -efo pid,comm
ps auxo pid,comm
ps
の使用 他のコマンドを使用する場合#
ps
配管を介して他のコマンドと組み合わせて使用できます。
ps
の出力を表示したい場合 コマンド、一度に1ページずつ less
にパイプします コマンド:
ps -ef | less
ps
の出力 コマンドはgrep
でフィルタリングできます 。たとえば、実行するrootユーザーに属するプロセスのみを表示するには:
ps -ef | grep root
結論#
ps
commandは、Linuxシステムの問題をトラブルシューティングするときに最も一般的に使用されるコマンドの1つです。多くのオプションがありますが、通常、ほとんどのユーザーは ps aux
のいずれかを使用しています またはps-ef
実行中のプロセスに関する情報を収集します。
ps
の詳細については 、 man ps
と入力します ターミナルで。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。