30Linuxプロセス監視の便利な「psコマンド」の例
ps(プロセスステータス)は、選択に関する情報を表示するためのネイティブUnix / Linuxユーティリティです。システム上で実行中のプロセスの例:/ procファイルシステム内の仮想ファイルからこの情報を読み取ります。これは、Linuxシステムで何が起こっているのかを理解するのに役立つ、特にプロセス監視下のシステム管理にとって重要なユーティリティの1つです。
出力を操作するための多数のオプションがありますが、小さなものがあります。それらの数は、日常の使用に実際に役立ちます。
関連項目:Linuxのプロセスについて知っておくべきことすべて
この記事では、psコマンドの30の便利な例を見ていきます。 Linuxシステムでアクティブに実行されているプロセスを監視するため。
psは、情報の各列の意味を表す見出し行を含む出力を生成することに注意してください。psmanのすべてのラベルの意味を見つけることができます。ページ。
現在のシェルのすべてのプロセスを一覧表示する
1。引数なしでpsコマンドを実行すると、現在のシェルのプロセスが表示されます。
$ ps
すべてのプロセスをさまざまな形式で印刷
2。 Linuxシステム上のすべてのアクティブなプロセスを汎用(Unix / Linux)形式で表示します。
$ ps -AOR$ ps -e
3。すべてのプロセスをBSD形式で表示します。
$ ps auOR$ ps axu
4。フルフォーマットのリストを実行するには、-f
または-F
フラグを追加します。
$ ps -efOR$ ps -eF
ユーザーが実行しているプロセスを表示する
5。自分が所有するすべてのプロセス(psコマンドのランナー、この場合はroot)を選択して、次のように入力できます。
$ ps -x
6。ユーザーのプロセスを実際のユーザーID(RUID)または名前で表示するには、-U
フラグを使用します。
$ ps -fU tecmintOR$ ps -fu 1000
7。有効なユーザーID(EUID)または名前でユーザーのプロセスを選択するには、-u
オプションを使用します。
$ ps -fu tecmintOR$ ps -fu 1000
ルートとして実行されているすべてのプロセスを印刷します(実際のIDと有効なID)
8。以下のコマンドを使用すると、rootユーザー権限(実際の&有効ID)で実行されているすべてのプロセスをユーザー形式で表示できます。
$ ps -U root -u root
グループプロセスの表示
9。特定のグループ(実際のグループID(RGID)または名前)が所有するすべてのプロセスを一覧表示する場合は、次のように入力します。
$ ps -fG apacheOR$ ps -fG 48
10。有効なグループ名(またはセッション)が所有するすべてのプロセスを一覧表示するには、次のように入力します。
$ ps -fg apache
PIDおよびPPIDでプロセスを表示
11。プロセスは次のようにPID別に一覧表示できます。
$ ps -fp 1178
12。 PPIDでプロセスを選択するには、次のように入力します。
$ ps -f --ppid 1154
13。 PIDリストを使用して選択します。
$ ps -fp 2226,1154,1146
TTYによるプロセスの表示
14。 ttyでプロセスを選択するには、次のように-tフラグを使用します。
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
プロセスツリーを印刷
15。プロセスツリーは、システム上のプロセスがどのように相互にリンクされているかを示します。親が強制終了されたプロセスは、init(またはsystemd)によって採用されます。
$ ps -e --forest
16。このように、特定のプロセスのプロセスツリーを印刷することもできます。
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
プロセススレッドの印刷
17。プロセスのすべてのスレッドを印刷するには、-H
フラグを使用します。これにより、LWP(軽量プロセス)列とNLWP(軽量プロセスの数)列が表示されます。
$ ps -fL -C httpd
カスタム出力形式の指定
-oまたは–formatオプションを使用すると、psを使用して以下に示すようなユーザー定義の出力形式を作成できます。
18。すべての形式指定子を一覧表示するには、L
フラグを含めます。
$ ps L
19。以下のコマンドを使用すると、プロセスのPID、PPID、ユーザー名、およびコマンドを表示できます。
$ ps -eo pid,ppid,user,cmd
20。以下は、プロセスのファイルシステムグループ、nice値、開始時間、経過時間を示すカスタム出力形式の別の例です。
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21。 PIDを使用してプロセス名を検索するには。
$ ps -p 1154 -o comm=
親プロセスと子プロセスを表示
22。名前で特定のプロセスを選択するには、-Cフラグを使用します。これにより、すべての子プロセスも表示されます。
$ ps -C sshd
23。プロセスのすべてのインスタンスのすべてのPIDを検索します。これは、std出力またはファイルからPIDを読み取る必要があるスクリプトを作成するときに役立ちます。
$ ps -C httpd -o pid=
24。プロセスの実行時間を確認します。
$ ps -eo comm,etime,user | grep httpd
以下の出力は、HTTPDサービスが1時間48分17秒実行されていることを示しています。
トラブルシューティングLinuxシステムのパフォーマンス
システムが正常に機能していない場合、たとえば、システムが異常に遅い場合は、次のようにシステムのトラブルシューティングを実行できます。
26。 Linuxで最も高いメモリとCPU使用率で実行中のプロセスを検索します。
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27。 Linuxプロセス/応答しないアプリケーションまたはCPU時間を多く消費しているプロセスを強制終了するには。
まず、応答しないプロセスまたはアプリケーションのPIDを見つけます。
$ ps -A | grep -i stress
次に、killコマンドを使用してすぐに終了します。
$ kill -9 2583 2584
セキュリティ情報の印刷
28。このようにセキュリティコンテキスト(特にSELinuxの場合)を表示します。
$ ps -eMOR$ ps --context
29。このコマンドを使用して、セキュリティ情報をユーザー定義形式で表示することもできます。
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Watchユーティリティを使用してリアルタイムのプロセス監視を実行する
30。最後に、psは静的情報を表示するため、watchユーティリティを使用して、以下のコマンドのように1秒ごとに表示される反復出力でリアルタイムのプロセス監視を実行できます(目的を達成するためにカスタムpsコマンドを指定します)。
$ watch -n 1 "ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head"
重要:psは静的な情報のみを表示します。頻繁に更新される出力を表示するには、htopなどのツールを使用できます。トップと一瞥:最後の2つは、実際にはLinuxシステムのパフォーマンス監視ツールです。
次の関連記事もお読みください。
- LinuxでPID番号を使用してプロセス名を検索する方法
- LinuxでメモリとCPUの使用率が最も高い上位のプロセスを検索する
- ガイド Linuxでプロセスを終了するためのKill、Pkill、Killallコマンド
- Linuxで実行中のプロセスを見つけて強制終了する方法
- Linuxコマンドをバックグラウンドで起動し、ターミナルでプロセスをデタッチする方法