web-dev-qa-db-ja.com

「ps aux」でauxはどういう意味ですか?

ps auxは、すべてのプロセスとそのステータスおよびリソースの使用状況(Linux/BSD/MacOS)を便利にリストしているようですが、man psを使用してパラメーターauxの意味を理解できません。

auxはどういう意味ですか?

181
Howard

a =すべてのユーザーのプロセスを表示する
u =プロセスのユーザー/所有者を表示します
x =端末に接続されていないプロセスも表示します

ところで、 man psは優れたリソースです。

歴史的に、BSDとAT&Tは互換性のないバージョンのpsを開発しました。先頭のダッシュがないオプション(質問どおり)はBSDスタイルですが、先頭のダッシュがあるオプションはAT&T Unixスタイルです。これに加えて、Linuxは両方のスタイルをサポートするバージョンを開発し、それに2つのダッシュで始まるオプションを持つ3番目のスタイルを追加しました。

すべて(またはほぼすべて)の組み込みでないLinuxディストリビューションは、 procps スイートのバリアントを使用します。上記のオプションは procps ps man page で定義されています。

コメントで、あなたはあなたがApple MacOS(OSX、私は推測します)を使用していると言います。psのOSX manページは here であり、それは示していますAT&Tスタイルのみをサポートします。

233
John1024
   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などのサービスなどのプロセスが含まれます。
17
slm

manpage を理解するための鍵は、「aux」(私が最初に試した)を検索することではなく、パラメータpsの種類を説明するセクションに焦点を当てることです。

このバージョンのpsは、いくつかの種類のオプションを受け入れます。

  1. グループ化される場合があり、先頭にダッシュを付ける必要があるUNIXオプション。
  2. BSDオプション。グループ化される場合があり、ダッシュと一緒に使用してはなりません。
  3. 2つのダッシュが前に付いたGNUの長いオプション。

このことから、auxは(グループ化された)BSDオプションのセットであるauおよびxであることがわかります。アップ。

  • aおよびxは、選択するプロセスを制御し、すべてのプロセスを選択するために一緒に使用することを明示的に説明しています。

  • uは、「ユーザー指向」形式を使用して出力します。これにより、ユーザーIDやCPU /メモリの使用量など、より多くの列が提供されます。

uだけで出力形式を制御するため、ps u $pid1 $pid2 ...を使用すると、特定のプロセスのみの「ps aux」スタイルの出力を取得できます。

8
mwfearnley