Unicode and Byte Order
目次:
Linuxでは、プログラムの実行中のインスタンスはプロセスと呼ばれます。 時々、Linuxマシンで作業しているとき、現在実行中のプロセスを調べる必要がある場合があります。
実行中のプロセスに関する情報を見つけるために使用できるコマンドがいくつかありますが、
ps
、
pstree
、および
top
が最も一般的に使用されます。
この記事では、
ps
コマンドを使用して現在実行中のプロセスをリストし、それらのプロセスに関する情報を表示する方法について説明します。
ps
コマンドの使用方法
ps
コマンドの一般的な構文は次のとおりです。
ps
歴史的および互換性の理由から、
ps
コマンドはいくつかの異なるタイプのオプションを受け入れます。
- 単一のdash.BSDスタイルオプションが先行し、dash.GNUロングオプションなしで使用され、2つのダッシュが先行するUNIXスタイルオプション。
さまざまなオプションタイプを混在させることができますが、特定のケースでは競合が発生する可能性があるため、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
。
-
PID
プロセスID。 通常、ps
コマンドを実行するとき、ユーザーが探している最も重要な情報はプロセスPIDです。 PIDを知ることで、誤動作しているプロセスを強制終了できます。TTY
プロセスの制御端末の名前。TIME
プロセスの累積CPU時間。分と秒で表示されます。CMD
プロセスを開始するために使用されたコマンドの名前。
上記の出力はあまり情報を含んでいないため、あまり役に立ちません。
ps
コマンドの真の力は、追加のオプションを使用して起動したときに得られます。
ps
コマンドは、プロセスの特定のグループとプロセスに関するさまざまな情報を表示するために使用できる膨大な数のオプションを受け入れますが、日常の使用に必要なのはほんの一握りです。
ps
は、次のオプションの組み合わせで最も頻繁に使用されます。
BSDフォーム :
ps aux
-
a
オプションは、ps
にすべてのユーザーのプロセスを表示するように指示します。 端末に関連付けられていないプロセスとグループリーダーのプロセスのみが表示されていません。u
は、プロセスに関する詳細情報を提供するユーザー指向の形式を表しますx
オプションは、ps
に制御端末なしでプロセスをリストするように指示します。 これらは主に、起動時に開始され、バックグラウンドで実行されるプロセスです。
このコマンドは、
USER
、
PID
、
%CPU
、
%MEM
、
VSZ
、
RSS
、
STAT
、
START
、
TTY
、
TIME
、および
CMD
というラベルの付いた11列に情報を表示します。
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…
PID
、
TTY
、
TIME
および
CMD
ラベルについてはすでに説明しました。 他のラベルの説明は次のとおりです。
-
USER
プロセスを実行するユーザー。%CPU
プロセスのCPU使用率。%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
、
PID
、
PPID
、
C
、
STIME
、
TIME
、および
CMD
というラベルの付いた8つの列に情報を表示します。
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…
まだ説明されていないラベルの意味は次のとおりです。
-
UID
プロセスを実行するユーザーUSER
と同じ。PPID
親プロセスのID。C
プロセスのCPU使用率である%CPU
と同じ。STIME
コマンドが開始された時刻であるSTART
と同じです。
特定のユーザーとして実行されているプロセスのみを表示するには、次のコマンドを入力します。ここで、
linuxize
はユーザーの名前です。
ユーザー定義フォーマット
o
オプションを使用すると、
ps
コマンドの実行時に表示される列を指定できます。
たとえば、
PID
および
COMMAND
に関する情報のみを出力するには、次のコマンドのいずれかを実行します。
ps -efo pid, comm
他のコマンドで
ps
を使用する
ps
は、パイピングを通じて他のコマンドと組み合わせて使用できます。
ps -ef | less
ps
コマンドの出力は、
grep
でフィルタリングできます。 たとえば、rootユーザーに属するプロセスのみを表示するには、次を実行します。
結論
ps
コマンドは、Linuxシステムの問題をトラブルシューティングするときに最もよく使用されるコマンドの1つです。 多くのオプションがありますが、通常、ほとんどのユーザーは
ps aux
または
ps -ef
を使用して、実行中のプロセスに関する情報を収集しています。
ps
詳細については、ターミナルで
man ps
してください。