Lệnh ps trong Linux được sử dụng để liệt kê các tiến trình đang chạy. Lệnh ps có thể được sử dụng theo nhiều cách để lấy nhiều thông tin khác nhau về các tiến trình đang chạy. Chúng ta cùng xem xét một số điều quan trọng sau.
Ps trong Linux là gì?
Ps là từ viết tắt của Process Status hay là Process trong Linux đơn giản là một chương trình đang được vận hành. Mỗi phiên bản của một chương trình này là một process. Trình duyệt, trình phát nhạc hay là trình soạn thảo văn bản của bạn là tất cả các ví dụ về các process đang chạy cùng một lúc.
Lệnh ps trong Linux sẽ không có bất kỳ đối số nào hiển thị các process đang chạy trong phiên hiện tại.
Chúng ta có thể thấy bốn tham số được hiển thị về các process đang chạy:
- PID: process ID.
- TTY: Loại terminal.
- TIME: Tổng thời gian process đã chạy.
- CMD: tên của lệnh khởi chạy process.
Process thứ hai sẽ thực sự là lệnh ps trong Linux. Mọi lệnh mà chúng ta chạy trong terminal đều được Linux coi là một process.
Xem thêm: Các công lệnh trong Linux
Công dụng lệnh ps trong Linux
Nhận thêm thông tin về các quy trình
Lệnh ps trong Linux có thể được sử dụng với tùy chọn -u để hiển thị thêm thông tin về các quy trình.
$ ps -u
Bây giờ cùng với PID, TTY, TIME, COMMAND, chúng ta có một số thông tin khác về các quy trình, chẳng hạn như USER,% CPU,% MEM.
- %CPU đại diện cho sức mạnh tính toán mà quá trình đang sử dụng.
- %MEM đại diện cho số lượng bộ nhớ mà quá trình đang sử dụng.
- STAT đại diện cho trạng thái quá trình.
Định dạng hiển thị này được gọi là kiểu BSD.
Hiển thị các quy trình do người dùng hiện tại sở hữu
Lệnh này sẽ hiển thị tất cả các tiến trình thuộc sở hữu của người dùng đang chạy lệnh ps trong Linux.
$ ps -x
Đây là những quy trình do người dùng sở hữu (trong trường hợp này là root). Những quy trình này không cần thiết phải chạy. Có một cách để liệt kê các quy trình cho người dùng và nhóm khác, chúng tôi sẽ đề cập cách này ở phần sau của bài viết.
Dùng lệnh ps trong Linux -u flag với -x flag
ps-ux là sự kết hợp hai lệnh bạn có thể đoán. Nó hiển thị thêm thông tin về các quy trình do người dùng sở hữu.
$ ps -ux
Trên thực tế, -u flag hầu như luôn được kết hợp với một số flag khác để có thêm các thông tin.
Liệt kê tất cả các quy trình trên hệ thống
Lệnh này sẽ hiển thị tất cả các quy trình trên hệ thống. Điều này sẽ không giới hạn danh sách các quy trình cho người dùng hiện tại hoặc các quy trình đang chạy.
$ ps -A
Hoặc
$ ps -e
Để in process tree dùng lệnh sau:
$ ps -eH
Hoặc
$ ps -e --forest
ps -eH hiển thị các quy trình theo hệ thống phân cấp của chúng. Trong khi ps-e –forest hiển thị quy trình ở định dạng ASCII in chúng ra theo dạng cây.
Threads
Trong Linux, một thread là một phiên bản của chương trình đang được thực thi. Một quy trình có thể có nhiều thread.
Sử dụng lệnh ps trong Linux bạn cũng có thể liệt kê các thread.
$ ps -H
Lệnh này sẽ hiển thị các thread như thể chúng là các quy trình.
$ ps -m
Hiển thị các thread sau các quy trình.
$ ps -T
Hiển thị các thread với SPID của chúng, là thread id và có thể giống như PID trong trường hợp chỉ có một thread.
Full format listing và extra full format listing
$ ps -f
Lệnh này sẽ liệt kê thông tin về các quy trình theo cách liệt kê định dạng đầy đủ. Danh sách các định dạng đầy đủ hiển thị UID, PPID, C và STIME cùng với TIME, CMD và PID.
$ ps -F
Lệnh này liệt kê thông tin về các quy trình theo cách liệt kê định dạng đầy đủ hơn. Chúng ta có thể so sánh kết quả trước đó và xem thông tin bổ sung mà extra full format listing đang cung cấp.
Như bạn có thể thấy rằng chúng chúng ta hiện đang nhận được PPID và PID.
- RSS là mức sử dụng bộ nhớ thực.
- SIZE là mức sử dụng bộ nhớ ảo.
- TIME là thời gian bắt đầu của quá trình.
Lệnh này có thể được kết hợp với -e và được sử dụng như lệnh ps -eF để nhận thông tin định dạng đầy đủ về tất cả các quy trình. Rất dễ để bị nhầm lẫn ps -f và ps -F với cùng một lệnh.
Quá trình xác định dựa trên PID
Bạn có thể hiển thị quy trình tương ứng với một PID cụ thể bằng cách sử dụng:
$ ps -fp [pid]
Điều này sẽ hiển thị các quy trình với thông tin và định dạng đầy đủ. Bạn cũng có thể sử dụng ps -Fp [pid] để hiển thị các quy trình có thêm thông tin định dạng đầy đủ.
Bạn có thể nhận được nhiều quy trình bằng cách đề cập đến nhiều PID được phân tách bằng dấu phẩy.
$ ps -fp [pid1],[pid2],[pid3]
Quá trình xác định dựa trên PID gốc (PPID). Bạn có thể hiển thị các quy trình tương ứng với một PPD cụ thể bằng cách sử dụng:
$ ps -f --ppid [ppid]
Điều này hiển thị tất cả các quy trình với ID gốc là 1.
Hiển thị quá trình theo tên lệnh
Các quá trình có thể được chọn dựa trên tên lệnh:
$ ps -C [cmd name]
Để hiển thị tất cả các quy trình cho một người dùng cụ thể:
$ ps -U [user_name]
Để hiển thị tất cả các quy trình cho một nhóm cụ thể:
$ ps -G [group_name]
Kết luận
Lệnh ps trong Linux là một lệnh rất hữu ích và quan trọng. Nó có thể được sử dụng để quản lý các quy trình trong Linux. Còn rất nhiều điều cần tìm hiểu về lệnh ps, đây chỉ là một số trường hợp sử dụng lệnh ps trong Linux. Có thể tìm thấy thêm tài liệu về lệnh ps trong Linux ở nhiều trang web học tập khác nhau. Chúc các bạn thành công.