Nghĩa là gì trong `ps aux`?


162

ps auxdường như thuận tiện liệt kê tất cả các quy trình và trạng thái và việc sử dụng tài nguyên của chúng (Linux / BSD / MacOS), tuy nhiên tôi không thể hiểu ý nghĩa của tham số auxsử dụng man ps.

auxnghĩa là gì?

Câu trả lời:


209

a = hiển thị các quy trình cho tất cả người dùng
u = hiển thị người dùng / chủ sở hữu của quy trình
x = cũng hiển thị các quy trình không được đính kèm với thiết bị đầu cuối

Nhân tiện, man pslà một nguồn tài nguyên tốt.

Trong lịch sử, BSD và AT & T đã phát triển các phiên bản không tương thích của ps. Các tùy chọn không có dấu gạch đầu dòng (theo câu hỏi) là kiểu BSD trong khi các tùy chọn có dấu gạch đầu dòng là kiểu Unix AT & T. Trên hết, Linux đã phát triển một phiên bản hỗ trợ cả hai kiểu và sau đó thêm vào đó là kiểu thứ ba với các tùy chọn bắt đầu bằng dấu gạch ngang kép.

Tất cả (hoặc gần như tất cả) các bản phân phối Linux không nhúng đều sử dụng một biến thể của bộ Procps . Các tùy chọn trên được xác định trong trang man của Procpsps .

Trong các bình luận, bạn nói rằng bạn đang sử dụng Apple MacOS (OSX, tôi đoán vậy). Man page OSX cho psở đây và nó cho thấy chỉ hỗ trợ cho phong cách của AT & T.


1
@HowardGuo Bạn có chắc chắn điều đó -utrái ngược với ukhông?
jordanm

2
@HowardGuo Tôi đã cập nhật câu trả lời để phản ánh sự khác biệt giữa phiên bản GNU (Linux) và phiên bản psApple OSX. Câu hỏi này hiện được gắn thẻ "Linux". Nếu bạn cũng đang hỏi về MacOS, bạn có thể muốn cập nhật các thẻ.
John1024

1
Cảm ơn rất nhiều. Tôi vừa kiểm tra trang hướng dẫn sử dụng ps trong Linux và nó có thông tin liên quan aux, trang hướng dẫn của MacOS không có thông tin đó, đây có thể là một lỗi tài liệu.
Howard

2
Trang người dùng OSX cho psbiết "... ps auxvẫn hoạt động như trong Tiger" trong phần "Mô tả di sản".
dev

3
Tôi phải phản đối nhận xét rằng " man pslà một tài nguyên tốt trên mac OSX. Trang người đàn ông, chỉ ở phần cuối, ghi chú ps auxđược duy trì như một sự thuận tiện, nhưng hoàn toàn không có gợi ý rằng các tùy chọn có thể được chỉ định mà không có dấu gạch nối trước cuối cùng, trang người đàn ông rất dài và phức tạp, và một người đọc có thể dành nhiều thời gian để đặt câu hỏi về sự tỉnh táo của mình trước khi từ bỏ và googling cho câu hỏi stackexchange này.
Reb.Cabin

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.

Thí dụ

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

Với các công tắc trên, bạn sẽ nhận được đầu ra liên quan đến các quy trình của bạn như trên.

Các công tắc auxsẽ hiển thị cho bạn:

  • tất cả các quy trình của người dùng
  • hiển thị cho bạn quy trình được liệt kê theo kiểu người dùng (theo tên người dùng)
  • hiển thị cho bạn tất cả các quy trình, không chỉ các quy trình được gắn vào thiết bị đầu cuối. Điều này sẽ bao gồm các quy trình như dịch vụ như crond, upowerd, v.v.

6

Chìa khóa để hiểu manpage không phải là tìm kiếm "aux" (mà tôi đã thử trước tiên), mà là tập trung vào phần mô tả các loại tham số psmất:

Phiên bản ps này chấp nhận một số loại tùy chọn:

  1. Các tùy chọn UNIX, có thể được nhóm lại và phải được bắt đầu bằng dấu gạch ngang.
  2. Các tùy chọn BSD, có thể được nhóm lại và không được sử dụng với dấu gạch ngang.
  3. Các tùy chọn dài của GNU, được đặt trước bởi hai dấu gạch ngang.

Từ đó, chúng ta biết rằng auxlà một tập hợp các tùy chọn (nhóm) BSD, a, ux, mà làm cho họ một chút dễ dàng hơn để tìm kiếm.

  • axkiểm soát các quá trình được chọn và được sử dụng cùng nhau được mô tả rõ ràng để chọn tất cả các quy trình.

  • u đầu ra sử dụng định dạng "hướng đến người dùng", cung cấp nhiều cột hơn, bao gồm cả id người dùng và mức sử dụng CPU / bộ nhớ.


Một hệ quả tất yếu của việc này là nếu bạn muốn "ps aux" đầu ra phong cách cho một quá trình, sau đó bạn có thể lấy nó bằng cách bỏ đi ax, và chỉ cần làm ps u $pid.
mwfearnley
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.