Cách xem các tiến trình đang chạy trên Linux

theanh

Administrator
Nhân viên
Mọi thứ chạy trên hệ thống Linux, từ ứng dụng người dùng đến dịch vụ hệ thống, đều là quy trình riêng biệt. Ngay cả khi máy tính của bạn đang ở màn hình terminal trống, chắc chắn vẫn có một loạt quy trình chạy ở chế độ nền. Có một số công cụ Linux mà chúng ta có thể sử dụng để xác định tất cả các quy trình trên hệ thống của mình và đó là những gì chúng tôi sẽ đề cập trong hướng dẫn này.

Biết cách kiểm tra các quy trình đang chạy sẽ cho phép bạn xác minh xem có thứ gì đó đang chạy hay không, chấm dứt nếu cần và theo dõi tác động của nó lên tài nguyên hệ thống (CPU và RAM).

Liệt kê các quy trình bằng lệnh ps​

Lệnh ps có thể liệt kê tất cả các quy trình đang chạy trên hệ thống Linux bằng tùy chọn -e.
Mã:
ps -e

Screenshot_1.png



Việc một hệ thống có số lượng lớn các tiến trình đang chạy tại một thời điểm nhất định là điều bình thường, vì vậy, sẽ dễ dàng hơn để sàng lọc danh sách này bằng cách chuyển lệnh đến more. Ví dụ, để xem 15 dòng cùng một lúc:
Mã:
ps -e | more -15
Đầu ra từ ps hiển thị cho chúng ta mọi quy trình đang chạy, ID quy trình tương ứng của quy trình đó (viết tắt là PID) và TTY (giao diện đầu cuối mà quy trình đang chạy). Dấu chấm hỏi trong cột TTY có nghĩa là quy trình không được đính kèm vào bất kỳ giao diện đầu cuối nào - nó chỉ chạy ở chế độ nền.

Bạn có thể cần biết PID của một quy trình để kết thúc quy trình đó hoặc TTY để có thể quay lại quy trình đang mở bằng cách đính kèm lại vào cửa sổ đầu cuối chính xác.

Một tùy chọn hữu ích khác với ps là tùy chọn -aux.
Mã:
ps -aux
Giống như tùy chọn trước, tùy chọn này sẽ liệt kê mọi quy trình đang chạy trên hệ thống của bạn. Nhưng nó cũng liệt kê mức sử dụng CPU và RAM hiện tại của từng quy trình, cũng như lệnh đã tạo ra từng quy trình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22346%22%3E%3C/svg%3E

Tìm một quy trình bằng pgrep​

Đối với chúng ta, lệnh pgrep kết hợp giữa ps và grep. Chúng ta có thể chỉ định tên - hoặc một phần tên - của một tiến trình mà chúng ta đang tìm kiếm và pgrep sẽ trả về ID tiến trình tương ứng.

Ví dụ: để tìm kiếm bất kỳ tiến trình nào liên quan đến SSH trên hệ thống của bạn, bạn sẽ nhập:
Mã:
pgrep ssh

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22534%22%20height=%22173%22%3E%3C/svg%3E


Như được hiển thị trong ảnh chụp màn hình ở trên, pgrep đã tìm thấy một tiến trình SSH có PID là 1143. Để xác minh thêm, hãy kiểm tra bằng lệnh ps:
Mã:
ps -e | grep 1143

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22529%22%20height=%22160%22%3E%3C/svg%3E

Xem các tiến trình đang chạy với top​

Tiện ích top tất nhiên là một công cụ dòng lệnh, nhưng nó cung cấp đầu ra tương tác của tất cả các quy trình đang chạy, hiển thị thông tin như bạn mong đợi thấy trong giao diện đồ họa. Thật dễ dàng để bắt đầu. Chỉ cần nhập top:
Mã:
top

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22441%22%3E%3C/svg%3E


Đầu ra từ top cung cấp cho chúng ta rất nhiều thông tin, bao gồm cả mức sử dụng CPU và RAM tổng thể trên hệ thống của chúng ta. Nhưng chúng tôi ở đây để xem danh sách các quy trình, bạn sẽ tìm thấy ngay bên dưới.

Cửa sổ terminal không đủ lớn để top có thể liệt kê mọi quy trình đang chạy, vì vậy top sẽ hiển thị nhiều nhất có thể và sắp xếp chúng theo mức sử dụng tài nguyên hệ thống. Nói cách khác, các quy trình sử dụng nhiều CPU và RAM nhất sẽ được liệt kê ở trên cùng. Các quy trình ít đòi hỏi hơn sẽ hiển thị ở phía dưới trong danh sách, có thể bị cắt khỏi cửa sổ terminal.

Sử dụngcác phím mũi tên trên bàn phím để cuộn lên và xuống qua danh sách các quy trình.

Có khá nhiều thông tin được liệt kê về từng quy trình đang chạy. Sau đây là tóm tắt nhanh về ý nghĩa của các cột khác nhau này:
  • PID: ID tiến trình của mỗi tác vụ.
  • PR: Mức độ ưu tiên lên lịch của một tác vụ.
  • NI: Giá trị tốt của một tác vụ. Số âm biểu thị mức độ ưu tiên cao hơn.
  • VIRT: Lượng bộ nhớ ảo đang được sử dụng.
  • RES: Lượng bộ nhớ thường trú đang được sử dụng.
  • SHR: Lượng bộ nhớ chia sẻ đang được sử dụng.
  • S: Trạng thái của tác vụ (R=đang chạy, S=đang ngủ).
  • %CPU: Tỷ lệ phần trăm CPU hiện tại đang được tác vụ sử dụng.
  • %MEM: Tỷ lệ phần trăm RAM hiện tại đang được tác vụ sử dụng.
  • TIME+: Thời gian CPU của tác vụ.
  • COMMAND: Lệnh được sử dụng để tạo tác vụ.
Như đã đề cập, top là lệnh tương tác, vì vậy chúng ta có thể sử dụng một số phím tắt để thực hiện một số thao tác hữu ích với nó. Chúng ta sẽ xem xét một số phím tắt tiện dụng hơn bên dưới.

Nhấn phím z để mã hóa màu các tiến trình đang chạy. Điều này giúp phân biệt dễ dàng hơn các tác vụ đang chạy với các tiến trình đang ngủ hoặc zombie.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22442%22%3E%3C/svg%3E


Nhấn phím c để có lệnh đầy đủ được sử dụng cho từng tác vụ. Điều này sẽ hiển thị đường dẫn tuyệt đối, cùng với bất kỳ tùy chọn nào được sử dụng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22356%22%3E%3C/svg%3E


Nhấn phím k để tắt một tiến trình đang chạy, ngay từ tiện ích trên cùng. Điều này giúp tiết kiệm một chút thời gian thoát khỏi tiện ích và phát lệnh tắt riêng. Bạn sẽ cần nhập PID của tiến trình bạn muốn kết thúc:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22459%22%3E%3C/svg%3E


Nhấn phím r để thay đổi mức độ ưu tiên của tiến trình bằng renice. Nhập PID của tiến trình bạn muốn đóng:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22456%22%3E%3C/svg%3E


Để biết thêm tùy chọn, hãy nhấn phím h(trợ giúp) để xem mọi thứ khác mà top có thể làm.

Sau khi sử dụng xong tiện ích top, bạn có thể thoát khỏi công cụ và quay lại thiết bị đầu cuối bằng cách nhấn q.

Xem các tiến trình đang chạy bằng htop​

Tiện ích htop được xây dựng dựa trên top và thân thiện với người dùng hơn một chút cũng như dễ nhìn hơn. Nhược điểm duy nhất là nó không được cài đặt mặc định trên tất cả các bản phân phối Linux, vì vậy có thể bạn cần phải cài đặt nó trước. Nó sẽ nằm trong kho lưu trữ của hệ điều hành của bạn, vì vậy, đây là cách cài đặt nó bằng trình quản lý gói của bạn:

Debian và Ubuntu:
Mã:
sudo apt install htop
CentOS và Fedora:
Mã:
dnf install htop
Red Hat:
Mã:
yum install htop
Sau khi cài đặt, chỉ cần nhập htop để chạy tiện ích.
Mã:
htop

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22478%22%3E%3C/svg%3E


Bạn có thể sử dụng chuột để tương tác với htop và các lệnh bàn phím khác nhau được liệt kê ở cuối cửa sổ terminal. Nó hoạt động chủ yếu giống như lệnh top, nhưng có giao diện sạch hơn, dễ hiểu hơn.

Kết luận​

Trong hướng dẫn này, tôi đã chỉ cho bạn các phương pháp khác nhau để xem các tiến trình đang chạy trên hệ thống Linux. Việc bạn sử dụng phương pháp nào sẽ tùy thuộc vào tình huống và sở thích của bạn, nhưng mỗi phương pháp đều có những lợi ích riêng.

Sử dụng những gì bạn đã học được trong hướng dẫn này sẽ cho phép bạn xác định tất cả các quy trình đang chạy trên hệ thống của mình và tác động của chúng lên tài nguyên hệ thống, đồng thời giúp bạn có khả năng chấm dứt hoặc sắp xếp lại thứ tự ưu tiên cho các tác vụ theo ý muốn.
 
Back
Bên trên