ps aux
aux
ステータスとリソース使用量(Linux / BSD / MacOS)ですべてのプロセスを一覧表示する便利な方法があるようですがman ps
。
どういう意味ですかaux
?
答え1
a = すべてのユーザーのプロセス表示
u = プロセスのユーザー/所有者の表示
x = 端末に接続されていないプロセスも表示
ところで、man ps
素晴らしいリソースです。
歴史的に、BSDとAT&Tは互換性のないオプションを開発しましたps
。先行ダッシュのないオプション(質問による)はBSDスタイルで、先行ダッシュのあるオプションはAT&T Unixスタイルです。それに加えて、Linuxは両方のスタイルをサポートするバージョンを開発し、オプションが二重ダッシュで始まる3番目のスタイルを追加しました。
すべて(またはほぼすべて)非埋め込みLinuxディストリビューションは、プロセス母音。上記のオプションは次のように定義されます。手順ps
マニュアルページ。
コメントで、あなたはApple MacOS(私の意見ではOSX)を使用していると言いました。 OSXのマニュアルページps
は次のとおりです。ここそして、AT&Tスタイルだけがサポートされていることを示しています。
答え2
man ps
オプションについては後述する。
a Lift the BSD-style "only yourself" restriction, which is imposed
upon the set of all processes when some BSD-style (without "-")
options are used or when the ps personality setting is BSD-like.
The set of processes selected in this manner is in addition to the
set of processes selected by other means. An alternate
description is that this option causes ps to list all processes
with a terminal (tty), or to list all processes when used together
with the x option.
u Display user-oriented format.
x Lift the BSD-style "must have a tty" restriction, which is imposed
upon the set of all processes when some BSD-style (without "-")
options are used or when the ps personality setting is BSD-like.
The set of processes selected in this manner is in addition to the
set of processes selected by other means. An alternate
description is that this option causes ps to list all processes
owned by you (same EUID as ps), or to list all processes when used
together with the a option.
はい
$ ps aux | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 51120 2796 ? Ss Dec22 0:09 /usr/lib/systemd/systemd --system --deserialize 22
root 2 0.0 0.0 0 0 ? S Dec22 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Dec22 0:04 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< Dec22 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S Dec22 0:15 [migration/0]
root 8 0.0 0.0 0 0 ? S Dec22 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S Dec22 2:47 [rcu_sched]
...
saml 3015 0.0 0.0 117756 596 pts/2 Ss Dec22 0:00 bash
saml 3093 0.9 4.1 1539436 330796 ? Sl Dec22 70:16 /usr/lib64/thunderbird/thunderbird
saml 3873 0.0 0.1 1482432 8628 ? Sl Dec22 0:02 gvim -f
root 5675 0.0 0.0 124096 412 ? Ss Dec22 0:02 /usr/sbin/crond -n
root 5777 0.0 0.0 51132 1068 ? Ss Dec22 0:08 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplica
saml 5987 0.7 1.5 1237740 119876 ? Sl Dec26 14:05 /opt/google/chrome/chrome --type=renderer --lang=en-
root 6115 0.0 0.0 0 0 ? S Dec27 0:06 [kworker/0:2]
...
上記のスイッチを使用すると、上記のプロセスに関連する出力を得ることができます。
スイッチにaux
以下が表示されます。
- すべてのユーザーのためのプロセス
- ユーザーに表示される方法でリストされているプロセスを表示します(ユーザー名に基づいて)。
- 端末に接続されたプロセスだけでなく、すべてのプロセスを表示します。これには、crond、upowerd、その他のサービスなどのプロセスが含まれます。
答え3
理解の鍵はマンページ「aux」(最初の試み)を検索するのではなく、パラメータの種類を説明する部分に集中してくださいps
。
このpsバージョンはさまざまなオプションを受け入れます:
- UNIX オプションはグループ化でき、前にダッシュが必要です。
- BSDオプションはグループ化でき、ダッシュでは使用できません。
- 2つのダッシュが先行するGNUの長いオプションです。
これにより、これはaux
(グループ化された)BSDオプションセットであることがわかり、それをa
簡単u
にx
見つけることができます。
a
x
どのプロセスが選択され、一緒に使用されるかを制御することは、すべてのプロセスを選択することで明示的に説明されています。u
ユーザーIDやCPU /メモリ使用量を含む追加の列を提供する「ユーザー側」形式を使用して出力します。
出力形式は個別に制御されるため、u
特定のプロセスに固有の「ps aux」スタイルの出力を取得できますps u $pid1 $pid2 ...
。
答え4
ps:プロセスステータス
私には両方を/bin/ps --version
得ます/usr/bin/ps --version
。ps from procps-ng 3.3.16
ps は次のコマンドです。プロセス:
コマンドラインとフルスクリーン便利ナビゲーションの場合、procfs
プロセステーブルのエントリの状態に関する情報を提供するためにカーネルによって動的に生成された「類似」ファイルシステム。
文法2つ
システム内のすべてのプロセスを表示するには、次を使用します。
- 標準構文
- ポリスチレン
- ポリスチレン-EF
しかし、例ps -u
:
- ps -u root --format=user,pid,command # 次の行と同じ:
- ps -uroot --format=user,pid,command # (本当に見苦しい構文です!)
出力は次のとおりです
USER PID COMMAND
root 1 /sbin/init splash
root 2 [kthreadd]
root 3 [rcu_gp]
root 4 [rcu_par_gp]
root 6 [kworker/0:0H-kblockd]
root 9 [kworker/u80:0-ixgbe]
このPOSIXおよびUNIX規格によれば、次のことをps -aux
意味しますps -a -ux
。
1. ttyを持つプロセス(セッションリーダーを除く)[by -a
]
2.名前が「x」のユーザーが所有するすべてのプロセス[by -ux
](-u
:有効なプロセスを選択するあなた順)
工程選択オプションが追加されます。 (次の条件を満たす場合は、該当する工程が表示されます。)どの与えられた選択基準)
「x」(現在のユーザー?)というユーザーが存在しない場合
ps -aux
可能Fallsps aux
と警告を出力します。
-x
マニュアルページにはオプションはありませんが、ps -x
同じプロセスで見つけることができますps -ux
(異なる出力形式)。
ps -ux --format=user
インポート:
ユーザー名が存在しません。ps -x --format=user
正しい結果を取得する(現在のユーザーに対応)
次の事実が思い出されるのも当然ですmanpage
。
この動作は移行を支援するためのものです。古い スクリプトと習慣。壊れやすいので、依存してはいけません。
- BSD構文:
PS斧
回答:すべてのユーザー
x:リストみんなプロセス所有者あなた(psと同じEUID)。または、より具体的には、次のプロセスは含まれません。制御端子(ターミナルに接続されていないプロセスを含む)
したがって、
ax
すべてのプロセスが一覧表示されますu: リソース出力あなたセージ形式の
例:ps axu