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と入力します ターミナルで。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。