psコマンドの詳しい説明

高洛峰
高洛峰オリジナル
2016-12-29 14:33:031882ブラウズ

名前: ps
使用権限: すべてのユーザー
使用方法: ps [オプション] [--help]
説明: 瞬間的な旅程 (プロセス) のダイナミクスを表示
パラメーター: ps のパラメーターは多数ありますが、ここでは単によく使用されるパラメーターとその意味を簡単に紹介します
-A すべてのプロセスをリストします
-w 表示を拡大すると、より多くの情報を表示できます
-au より詳細な情報を表示します
-aux 他のユーザーを含むすべてのスケジュールを表示します

# ###### ######################################## ######## #

共通パラメータ:

-A すべてのプロセスを表示します (-e と同等) (ユーティリティ)
-a セッション リードを除く端末内のすべてのプロセスを表示します
-N 選択を無視します。
-d はすべてのプロセスを表示しますが、すべてのセッション リード (ユーティリティ) を省略します。
-x は端末を制御しないプロセスを表示し、各コマンドの特定のパスを表示します。 dxとの併用はできません。 (ユーティリティ)
-p pid プロセスが CPU を使用した時間
-u uid または username 有効なユーザー ID またはユーザー名を選択します
-g gid または groupname グループ内のすべてのプロセスを表示します。
U ユーザー名には、このユーザーの下にあるすべてのプロセスが表示され、各コマンドの詳細なパスが表示されます。例: ps U zhang;(utility)
-f はすべてをリストし、通常は他のオプションと組み合わせて使用​​されます。例: ps -fa または ps -fx など。
-l ロング形式 (F、wchan、C およびその他のフィールドを含む)
-j ジョブ形式
-o ユーザー定義形式。
v は仮想メモリ形式で表示します
s はシグナル形式で表示します
-m はすべてのスレッドを表示します
-H はプロセスレベルを表示します(ps -Ha などの他のコマンドと組み合わせて)(ユーティリティ)
e コマンド後の環境を表示します(例: ps -d e; ps -a e) (ユーティリティ)
h 最初の行を表示しません

######################### # ############################### ps コマンドの一般的な使用法 (システムプロセスの表示に便利)

1) ps a他のユーザーのプログラムを含む、現在の端末のすべてのプログラムを表示します。
2) ps -A はすべてのプロセスを表示します。
3) ps c がプログラムをリストする場合、常駐サービスのパス、パラメーター、識別情報を含まずに、各プログラムの実際の命令名が表示されます。
4) ps -e このパラメータの効果は、「A」パラメータを指定した場合と同じです。
5) ps e がプログラムをリストするとき、各プログラムが使用する環境変数を表示します。
6) ps f は ASCII 文字を使用してツリー構造を表示し、プログラム間の関係を表現します。
7) ps -H はプログラム間の関係を示すツリー構造を表示します。
8) ps -N は、ps コマンドを実行する端末下のプログラムを除くすべてのプログラムを表示します。
9) ps s はプログラム信号形式を使用してプログラムの状態を表示します。
10) ps S は、プログラムをリストするときに中断されたサブルーチン情報を含みます。
11) ps -t 端末番号を指定し、端末に属するプログラムの状態を一覧表示します。
12) ps u プログラムのステータスをユーザー指向の形式で表示します。
13) ps x 端末を区別せずにすべてのプログラムを表示します。
最も一般的に使用される方法は ps -aux で、パイプ記号を使用して grep に特定のプロセスを検索するよう指示し、特定のプロセスを操作します。

############################################## ## ##########

行ps aux 的到次情報:

root:# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME コマンド
smmsp 3521 0.0 0.7 6556 1616 ? 20:40 0:00 sendmail: キューランナー@01:00:00 f
root 3532 0.0 0.2 2428 452 ? Ss 20:40 0:00 gpm -m /dev/ input/mice -t imps2
htt 3563 0.0 0.0 2956 196 ? Ss 20:41 0:00 /usr/sbin/htt -retryonerror 0
htt 3564 0.0 1.7 29460 3704 Sl 20:41 0:00 htt_server -nodaemon
root 3574 0.0 0.4 5236 992 ? 0:41 0: 00 crond
xfs 3617 0.0 1.3 13572 2804 ? Ss 20:41 0:00 xfs -droppriv -daemon
ルート 3627 0.0 0.2 3448 552 ? SN 20:41 0:00 anacron -s
root 3636 0.0 0.1 2304 420 ? Ss 20:41 0:00 /usr/sbin/atd
dbus 3655 0.0 0.5 13840 108 4?SSL 20:41 0:00 dbus-daemon-1 --system


Head header:

USER ユーザー名
UID ユーザー ID (ユーザー ID)
PID プロセス ID (プロセス ID)
PPID 親プロセス ID )
SID セッション ID (セッション ID) )
%CPU プロセスの CPU 使用率
%MEM プロセスのメモリ使用量
VSZ プロセスが使用する仮想メモリのサイズ (仮想サイズ)
RSS プロセスが使用する常駐セットのサイズ、または実際のメモリ (KB 単位)。
TTY プロセスに関連付けられた端末 (tty)
STAT プロセスのステータス: プロセスのステータスを文字で表します (STAT のステータス コード)
R 実行可能 (実行キュー上) 実行中、または実行キュー内で待機中。
S スリープ スリープ、ブロックされ、特定の条件が形成されるか信号を受信するのを待っています。
I Idle Idle
Z Zombie (消滅プロセス) プロセスは終了しましたが、親プロセスが wait4() システムコールを呼び出して解放されるまでプロセス記述子は存在します。
D 無割り込みスリープ (通常は IO) は復帰せず、シグナルの受信時にプロセスは割り込みが発生するまで待機する必要があります。
T Terminate プロセスは、SIGSTOP、SIGSTP、SIGTIN、SIGTOU シグナルを受信した後に実行を停止します。
P スワップ ページを待機しています
W 常駐ページがありません 割り当てるメモリ ページが不足しています。
メモリ内の
プロセスのリーダー (その下に子プロセスがあります);
l マルチプロセス (NPTL pthread と同様、CLONE_THREAD を使用)
+ バックグラウンドにあるプロセス グループ
START プロセスの起動時刻と日付
TIME 合計 CPUプロセスによって使用された時間
COMMAND コマンドラインコマンドの実行
NI priority (Nice)
PRI プロセスの優先順位番号 (Priority)
WCHAN プロセスがスリープしているカーネル関数の名前 関数の名前は / から取得されます。 root/system.map ファイル。
FLAGS プロセスに関連付けられた数値識別

####################################### # ###################

例:
現在のシステム プロセスの uid、pid、stat、pri を uid 番号で並べ替えて表示します。
ps -eo pid, stat ,pri,uid –sort uid

現在のシステムプロセスのユーザー、pid、stat、rss、args を rss 順に表示します。
ps -eo user, pid, stat, rss, args –sort rss

# ### ############################################### # ######

ps はプロセスの 1 回限りのビューを提供しますが、提供されるビューの結果は動的ではなく、継続的なものではありません。プロセス時間を監視したい場合は、最上位のツールを使用する必要があります。


1. ps のパラメータの説明:

ps は多くのオプションパラメータを提供し、以下が一般的に使用されます:

l 長い形式の出力;
u はユーザー名と起動時間の順にプロセスを表示します。タスク形式を使用してプロセスを表示します。

a すべてのユーザー (他のユーザーを含む) を表示します。
r 実行中のプロセスを表示します。切り捨てられる;

一般的に使用されるオプションは、aux または lax の組み合わせ、およびパラメーター f の適用です。


2. ps aux または lax 出力の説明:
USER プロセスの所有者;
PPID プロセスによって占有されている CPU の割合;
%MEM のメモリの割合;NI はプロセスの NICE 値です。
VSZ はプロセスの仮想サイズです。
TTY は端末 ID です。プロセスステータス (以下があります)
D は中断できません スリープ状態 (通常は IO プロセス);
R は実行中、キューに入れることができます
T は停止または追跡されます;
W はメモリスワップに入ります。カーネル 2.6 以降は無効です);
X デッドプロセス (見たことありません);

< 優先度の高いプロセス
L 一部のページがメモリにロックされています。その下のプロセス);
l マルチプロセス (NPTL pthread と同様に、CLONE_THREAD を使用);
WCHAN 待機中のプロセス リソース;
TIME プロセスの消費 CPU 時間。
COMMAND コマンド名とパラメータ;


3. アプリケーション例:

[root@localhost ~]# ps -aux |more
ページ内での表示に接続することができます。
[root@localhost ~]# ps -aux > ps001.txt
結果を ps001.txt テキストに出力し、保存します。
[root@localhost ~]# more ps001.txt
ここでは、すべてのプロセスが表示され、ps001.txt ファイルに出力され、さらにページングで表示されます。


4. Kill はプロセスを終了 (強制終了) します。プロセスを制御するには、以下のような方法があります。
[root@localhost ~]#kill -STOP [pid]
Send SIGSTOP ( 17,19 ,23) プロセスを破壊せずに停止します。
[root@localhost ~]#kill -CONT [pid]
SIGCONT (19,18,25) を送信して、停止したプロセスを再開します。
[root@localhost ~]#kill -KILL [pid]
SIGKILL (9) を送信して、プロセスを即時に停止し、クリーンアップ操作を実行しないようにします。
[root@localhost ~]#kill -9 -1
所有するすべてのプロセスを強制終了します。
SIGKILL および SIGSTOP シグナルはキャッチ、ブロック、無視できませんが、他のシグナルはキャッチできます。つまり、これがあなたの最終兵器です。

############################################## ## ##########

ps コマンドを使用して、実行中のプログラムを管理者に報告します。

システム管理者は、現在システムでどのプログラムが実行されているかだけを気にしていても、知りたくない場合があります。どのようなプロセスが実行されているか。アプリケーションは複数のプロセスを開始する必要がある場合があるためです。同じ状況下では、プロセスの数はプログラムの数よりもはるかに多くなります。読み取りの観点からこれを行うには、管理者はシステム上で実行されている特定のプログラムを知っている必要があります。この要件を達成するには、コマンド ps を使用する必要があります。

1. psコマンドで表示される結果の意味。

システム内で実行されているプログラムを表示する必要がある場合、ps コマンドが唯一のコマンドではありませんが、最も頻繁に使用されるコマンドであることは間違いありません。下図のように、psコマンドを実行した結果が表示されます。

コマンドラインにコマンド ps を入力して、システム上で現在実行中のすべてのアプリケーションを表示します。上図に示すように、ps コマンドを入力すると、主に 4 つの部分が表示されます。 1 つ目は PID で、プログラムの ID 番号です。オペレーティング システムは、コマンドを使用してアプリケーションを識別するのではなく、この ID 番号を使用してアプリケーションを一意に識別します。アプリケーションを強制的に終了する必要がある場合は、この PID 番号を使用する必要があります。 TTY に続くこのフィールドは、ユーザーが使用する端末コードを示します。 Pts は、ユーザーがリモートでログインしていることを示します。 3 番目のパラメータ TIME は、このプログラムが消費する CPU 時間を表します。この時間はプログラムの実行開始時間ではないことに注意してください。最後のパラメータ CMD はプログラムの名前を表します。

2. システムに詳細情報を報告させます。

ps コマンドを使用するときにオプションを使用しない場合、表示される情報は非常に限られており、多くの場合、現在のユーザーが実行しているプログラムのみが表示されます。システム管理者がアプリケーションのメモリや CPU 使用率など、アプリケーションのより詳細な実行情報を知る必要がある場合は、いくつかのオプションを追加する必要があります。システム管理者が他のユーザーが実行したアプリケーションを表示する必要がある場合は、このコマンドの後にオプションの -al オプションを使用する必要があります。これを実行すると、システム上のすべてのユーザーが実行するすべてのプログラムがリストされます。特定のプログラムの CPU 使用率とメモリ使用率を知りたい場合は、単に CPU 使用時間を表示するのではなく、このコマンドの後にパラメーター -l を追加する必要があります。つまり、ps -l コマンドを使用すると、システムは表示できます。アプリケーション プログラムの詳細な実行情報。上記の各フィールドの意味に興味がある場合は、関連するヘルプを確認してください。一般に、システム管理者は、プログラムの PID 番号、メモリと CPU の使用量、コマンドの名前、ユーザーが使用する端末などを気にするだけです。その他の情報は、システム管理者にとってあまり価値がありません。

3. バックグラウンドで実行されているプログラムを確認します。

デフォルトでは、 ps コマンドはフォアグラウンドで実行されているプログラムのみを表示し、バックグラウンドで実行されているプログラムは表示しません。ただし、すべてのプログラムがフォアグラウンドで実行されるわけではありません。通常の状況では、バックグラウンドで隠れて実行されているプログラムの数は、フォアグラウンドで実行されているプログラムよりもはるかに多くなります。たとえば、オペレーティング システムの起動時に開始されるシステム独自のプログラムの多くは、バックグラウンドで実行されます。また、場合によっては、バックグラウンド プログラムが原因でシステムの問題が発生することもあります。トロイの木馬などの一般的なプログラムはバックグラウンドで実行されます。このため、システム管理者はバックグラウンドでどのようなプログラムが実行されているかを知ることに比較的関心を持っています。

バックグラウンドで実行されているプログラムを確認したい場合は、少し複雑になります。 Linux オペレーティング システムのバージョンが異なると、バックグラウンド プロセスの表示に使用されるオプションが異なるためです。たとえば、Red Hat Linux オペレーティング システムでは、実際にはオプションではなくパラメータの形式になります。つまり、 ps aux コマンドを使用して、すべてのアプリケーション (フォアグラウンドとバックグラウンドを含む) を表示できます。パラメーターとオプションの主な違いは、先頭に - 記号がないことです。この記号が付いている場合は、オプションであることを意味します。含まれていない場合は、これがパラメータであることを意味します。この記号は通常は省略できます。コマンドが記述されるべき場所に記述されていない場合、または必要のない場所にコマンドが追加されている場合、システムはコマンドが見つからないことを示すエラー メッセージを表示します。他の Linux システム バージョンでは、この aux パラメータが認識されない可能性があります。たとえば、一部の Linux オペレーティング システム バージョンでは、このタスクを完了するには -a オプションを使用する必要があります。システムのバージョンが異なるため、システム管理者は非常に苦労します。幸いなことに、オペレーティング システムのバージョンごとにオンライン ヘルプがあります。システム管理者が新しいバージョンのオペレーティング システムを使用していて、すべてのプロセスを表示するためにどのオプションを使用すればよいかわからない場合は、ps --heip などのコマンドを使用してシステム ヘルプを表示できます。ただし、唯一の問題は、システムのオンライン ヘルプがすべて英語であることです。これは、システム管理者の英語能力にとって大きなテストとなります。ただし、Linux システム管理者になりたい場合は、やはりある程度の英語スキルが必要です。なぜなら、最新のLinuxテクノロジーは基本的に英語のドキュメントが先にあるからです。実際、ほとんどのコンピュータ書籍は英語で書かれています。

4. 番組リストを並べ替えます。

多数のアプリケーションが実行されている場合、システム管理者はアプリケーションを分類する必要があります。 Ps コマンドのソート機能は比較的強力です。主な理由は、このコマンドには --sort パラメーターがあるためです (このパラメーターの前に 2 つの小さな水平バー記号があることに注意してください。読者は作成者が間違いを犯したとは考えないでください)。このパラメータの後に、システム管理者が必要とする並べ替えフィールドを追加すると、並べ替えることができます。たとえば、このコマンド ps –A --sort cmd は、システム内のすべてのアプリケーションを表示し、プログラム コマンドに従ってそれらを並べ替えることを意味します。 Linux オペレーティング システムのパラメーターに関するもう 1 つの厄介な点は、パラメーターの大文字と小文字が異なると意味が異なることがよくあることです。たとえば、上記のコマンドで、大文字の A を小文字の a に置き換えると、結果はまったく異なります。大文字の A はすべてのアプリケーションを意味し、小文字の a は「セッション リーダーを除くすべての w/tty」を意味します。両者の間には本質的な違いがあります。この違いを利用して、異なる端末ログイン アカウントで実行されるアプリケーションをフィルタリングできます。

ps コマンドでは、多くのパラメーターでこの状況が発生します。 ps --help を実行してこのコマンドのすべてのパラメータを表示すると、大文字の使用が異なると意味が異なる同様の状況が多数あることがわかります。大文字の O と小文字の o、大文字の U と小文字の u など。 これらの違いにより、システム管理者がオペレーティング システムを保守することがさらに困難になります。システム管理者にとって、非常に多くのパラメーターとパラメーターの大文字と小文字の違いを把握することは、多くの場合不可能です。より一般的に使用されるパラメータを使用して価値を高めることに加えて、システム管理者はこのシステム コマンドのオンライン ヘルプも使用する必要があります。このシステム ヘルプは、システム コマンドの使用方法について管理者にオンライン ガイダンスを提供します。

5. 特定のプログラムの実行ステータスを報告します。

システム内で多数のプログラムが実行されている場合、プログラム名を並べ替えると、管理者が関心のあるプログラムを見つけやすくなります。しかし、これはまだ最も簡単な方法ではありません。たとえば、システム管理者は、他のオペレーティング システムで、システムのバックグラウンドで threadx と呼ばれるトロイの木馬プログラムが実行されていることに気付きます。このため、管理者はトロイの木馬プログラムが他のコンピュータでも実行されているかどうかを確認する必要があります。これに対処するにはどうすればよいでしょうか?オペレーティング システムで起動されている場合は、PID 番号が異なります。つまり、この PID 番号は自動的に生成されます。これにより、管理者はプログラムの検出をある程度まで高速化できます。しかし、システム管理者がパイプ文字や grep などのクエリ コマンドを使用できれば、必要なアプリケーション情報をより速く見つけられるかもしれないと著者は考えています。

システム管理者がこのコマンド ps aux | grep "threadx" を使用すると、まず、システムは現在のシステムで実行されているすべてのアプリケーション (フォアグラウンドおよびバックグラウンドで実行されているアプリケーションを含む) をリストします。次に、出力結果をパイプ記号 | を介してコマンド grep に渡します。次に、コマンド grep は、ps コマンドによって出力された結果で実行中の threadx プログラムに関する情報を検索します。存在する場合、そのプログラムの情報がウィンドウに表示され、他のアプリケーションの実行情報がフィルターで除外されます。パイプ文字を他のクエリ コマンドと組み合わせて使用​​すると、システム管理者が知りたいアプリケーションに関する情報を最短時間で見つけられることがわかります。

いくつかの特別なシンボルと組み合わせると、より責任のある機能を実現することもできます。 catコマンドと併用すると、条件に合致するプログラムの数をカウントできます。コマンドの後に > 記号を追加すると、出力結果をファイルに保存できます。ワイルドカードと組み合わせて使用​​すると、特定の条件を満たすプログラムのクラスをクエリできます。たとえば、特定のプログラムの親プログラムやそのサブプログラムなどの実行情報を照会することもできます。

終了

ps コマンドの詳細な説明と関連記事については、PHP 中国語 Web サイトに注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。