Hệ thống Linux của bạn có chạy chậm không? Hay bạn chỉ tò mò về những gì diễn ra dưới mui xe? Có một chương trình tích hợp mạnh mẽ được gọi là "ps" cho phép người dùng xem ảnh chụp nhanh các quy trình đang chạy trên một hệ thống. Chúng tôi thảo luận một số các tùy chọn có sẵn cho ps, và kết luận, bạn sẽ có thể kiểm tra các tiến trình đang chạy trên máy tính Linux của bạn giống như một mọt sách có kinh nghiệm.

Giới thiệu

Hầu hết các phiên bản của ps chấp nhận các tùy chọn kiểu BSD (có thể được nhóm lại và KHÔNG PHẢI được sử dụng với dấu gạch ngang), tùy chọn kiểu UNIX (có thể được nhóm và PHẢI được sử dụng với dấu gạch ngang) và các tùy chọn dài GNU (đứng trước hai dấu gạch ngang). Đối với bài viết này, chúng tôi sẽ trộn và sử dụng nhiều loại tùy chọn, với một xu hướng cho các kiểu UNIX. Ví dụ:

 ps -u root u –sort = pid 
  • UNIX STYLE -u root chỉ định user = root
  • BSD STYLE u chỉ định hiển thị định dạng hướng người dùng. Đây là một tùy chọn ưa thích vì định dạng đầu ra được tạo ra bằng cách sử dụng nó chứa một số thông tin rất hữu ích.
  • GNU LONG OPTION –sort chỉ định thứ tự sắp xếp quy trình. Trong trường hợp này, sắp xếp theo id tiến trình (pid)

Bài viết này sẽ thích các tùy chọn UNIX hơn và chỉ sử dụng BSD cho ngắn gọn. Ví dụ, lệnh

 bạn 

hiển thị các quá trình của người dùng hiện tại được gắn vào một thiết bị đầu cuối, với định dạng đầu ra “hướng người dùng”. Để có được cùng một định dạng đầu ra bằng cách sử dụng tùy chọn UNIX yêu cầu tùy chọn

 ps -o "người dùng, pid, pcpu, pmem, vsz, rss, tty, stat, bsdstart, bsdtime, args" 

Giải thích đối số của tùy chọn '-o' này là:

  • người dùng - userid hoặc tên người dùng hiệu quả của quá trình
  • pid - id quá trình
  • pcpu - thời gian cpu được sử dụng bởi quá trình chia cho thời gian quá trình đang chạy
  • pmem - phần trăm bộ nhớ vật lý được sử dụng bởi quá trình
  • vsz - kích thước bộ nhớ ảo của quá trình
  • rss - bộ nhớ vật lý không hoán đổi mà quá trình đã sử dụng
  • tty - thiết bị đầu cuối điều khiển của quá trình
  • stat - trạng thái tiến trình, được xác định bằng cách sử dụng các mã trạng thái tiến trình (đọc các trang của người đàn ông để biết thêm thông tin)
  • start_time - thời gian lệnh bắt đầu
  • thời gian - thời gian cpu tích lũy được sử dụng bởi quá trình
  • args - lệnh được sử dụng để chạy quy trình, cùng với các đối số của nó. (Đây là một lý do tại sao nó không bao giờ là một ý tưởng tốt để chạy một lệnh và nhập mật khẩu của bạn như là một đối số dòng lệnh.Bất kỳ người dùng khác trên hệ thống có thể chạy ps và xem các lệnh bạn đang chạy, cùng với tất cả các tùy chọn và đối số được thông qua ).

Quy ước được sử dụng từ nay sẽ là lệnh (ps), sau đó là tùy chọn BSD 'u' để xác định định dạng đầu ra, sau đó là các tùy chọn UNIX và GNU theo yêu cầu.

Một số tùy chọn 'PS'

Chạy 'ps' không có đối số hiển thị danh sách các quy trình có cùng ID người dùng với tư cách người gọi và được liên kết với cùng một thiết bị đầu cuối như người gọi.

Để hiển thị tất cả các quy trình đang chạy:

 ps u -e 

Để hiển thị tất cả các quy trình của người dùng hiện tại:

 ps u -u `whoami` 

Để hiển thị tất cả các quy trình của người dùng hiện tại, nhưng được sắp xếp theo mức sử dụng cpu (giảm dần).

LƯU Ý: trong lệnh dưới đây, chúng tôi sử dụng '-pcpu' để đạt được tỷ lệ phần trăm sử dụng cpu giảm dần. Để tăng dần, hãy sử dụng '+ pcpu' hoặc chỉ 'pcpu'. Tham khảo các trang của người đàn ông để biết thêm thông số sắp xếp bổ sung. Một số thông thường là pmem (sử dụng bộ nhớ), start_time (thời gian lệnh được chạy), và thời gian (lượng thời gian cpu được sử dụng bởi lệnh).

 ps u -u `whoami` --sort = -pcpu 

Để hiển thị tất cả các quy trình của người dùng hiện tại, ở định dạng cây:

 ps u -jH -u 'whoami` 

Sử dụng đường ống, ps có thể được kết hợp với đầu để hiển thị các quy trình hàng đầu. Lệnh tiếp theo sắp xếp theo mức sử dụng bộ nhớ trước, sau đó đi qua đầu để hiển thị các quá trình sử dụng bộ nhớ nhiều nhất. Đầu hiển thị mười dòng đầu tiên theo mặc định, vì vậy lệnh này sẽ hiển thị chín quy trình hàng đầu (Đầu trang đầu ra là dòng đầu tiên).

Lưu ý: "% mem" và "pmem" là đồng nghĩa, như là "% cpu" và "pcpu".

 ps u -u `whoami` --sort = -% mem | cái đầu 

Để hiển thị tương tự cho tất cả các quy trình, bất kể người dùng, hãy sử dụng tùy chọn -e :

 ps u -e --sort = -% mem | cái đầu 

Phần kết luận

Có nghĩa là hàng trăm tùy chọn (mặc dù một số là bí danh), và chúng tôi rất thích nghe, và xem, phương pháp sử dụng yêu thích của bạn. Hãy chia sẻ ý kiến ​​của mình trong ô bình luận ở bên dưới.