Apa arti aux dalam `ps aux`?

162

ps auxtampaknya mudah mendaftar semua proses dan penggunaan status dan sumber dayanya (Linux / BSD / MacOS), namun saya tidak dapat memahami arti dari auxmenggunakan parameter man ps.

Apa auxartinya

Howard
sumber

Jawaban:

209

a = tampilkan proses untuk semua pengguna
u = tampilkan pengguna / pemilik proses
x = juga tampilkan proses yang tidak dilampirkan ke terminal

By the way, man psadalah sumber yang bagus.

Secara historis, BSD dan AT&T mengembangkan versi yang tidak kompatibel dari ps. Opsi tanpa tanda hubung utama (sesuai pertanyaan) adalah gaya BSD sementara opsi dengan tanda hubung utama adalah gaya AT&T Unix. Selain itu, Linux mengembangkan versi yang mendukung kedua gaya dan kemudian menambahkannya gaya ketiga dengan opsi yang dimulai dengan tanda hubung ganda.

Semua (atau hampir semua) distribusi Linux yang tidak tertanam menggunakan varian dari paket procps . Opsi di atas sebagaimana didefinisikan dalam halaman manual procpsps .

Dalam komentar, Anda mengatakan Anda menggunakan Apple MacOS (OSX, saya kira). Halaman manual OSX psada di sini dan itu menunjukkan dukungan hanya untuk gaya AT&T.

John1024
sumber
1
@HowardGuo Apakah Anda yakin itu tidak -ubertentangan dengan adil u?
jordanm
2
@HowardGuo Saya telah memperbarui jawaban untuk mencerminkan perbedaan antara versi GNU (Linux) dan versi psApple OSX. Pertanyaan ini saat ini ditandai "Linux". Jika Anda juga bertanya tentang MacOS, Anda mungkin ingin memperbarui tag.
John1024
1
Terima kasih banyak. Saya baru saja memeriksa halaman manual ps di Linux dan memiliki informasi mengenai aux, halaman manual MacOS 'tidak memiliki informasi seperti itu, mungkin bug dokumen.
Howard
2
Halaman manual OSX psmengatakan "... ps auxmasih berfungsi seperti di Tiger" di bawah bagian "Legacy Description".
dev
3
Saya harus menolak komentar bahwa " man psadalah sumber yang bagus di mac OSX. Halaman manual, hanya di bagian paling akhir, catatan yang ps auxdikelola sebagai kenyamanan, tetapi sama sekali tidak ada petunjuk bahwa opsi dapat ditentukan tanpa memimpin tanda hubung sebelumnya akhirnya, halaman manualnya panjang dan rumit, dan seorang pembaca dapat menghabiskan banyak waktu untuk mempertanyakan kewarasannya sebelum menyerah dan mencari-cari pertanyaan
stackexchange ini
15
   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.

Contoh

$ 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]
...

Dengan sakelar di atas Anda akan mendapatkan output terkait proses Anda seperti di atas.

Switch auxakan menunjukkan kepada Anda:

  • semua proses pengguna
  • menunjukkan kepada Anda proses yang tercantum dalam mode yang berorientasi pengguna (berdasarkan nama pengguna)
  • menunjukkan kepada Anda semua proses, bukan hanya yang terpasang pada terminal. Ini akan mencakup proses seperti layanan seperti crond, upowerd, dll.
slm
sumber
6

Kunci untuk memahami halaman manual bukan untuk mencari "aux" (yang saya coba pertama kali), tetapi untuk fokus pada bagian yang menjelaskan jenis-jenis parameter yang psdibutuhkan:

Versi ps ini menerima beberapa jenis opsi:

  1. Opsi UNIX, yang dapat dikelompokkan dan harus didahului dengan tanda hubung.
  2. Opsi BSD, yang dapat dikelompokkan dan tidak boleh digunakan dengan tanda hubung.
  3. Opsi panjang GNU, yang didahului oleh dua tanda hubung.

Dari ini, kita tahu bahwa itu auxadalah serangkaian opsi BSD (dikelompokkan) a,, udan x, yang membuatnya sedikit lebih mudah untuk dicari.

  • adan xkontrol proses mana yang dipilih, dan digunakan bersama secara eksplisit dijelaskan untuk memilih semua proses.

  • u output menggunakan format "berorientasi pengguna", yang memberikan lebih banyak kolom, termasuk id pengguna dan penggunaan CPU / memori.

mwfearnley
sumber
Konsekuensi dari ini adalah bahwa jika Anda ingin output gaya "ps aux" untuk suatu proses, maka Anda bisa mendapatkannya dengan meninggalkan adan x, dan hanya melakukan ps u $pid.
mwfearnley