Hướng dẫn quản lý tiến trình đang hoạt động trên Linux
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, là process riêng của nó . Ngay cả khi máy tính của bạn đang ngồi ở một màn hình thiết bị đầu cuối trống, chắc chắn có một loạt các quá trình đang chạy trong nền. Có một số công cụ Linux mà chúng tôi có thể sử dụng để xác định tất cả các quy trình trên hệ thống của chúng tôi và đó là những gì chúng tôi sẽ trình bày 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 thiết và theo dõi tác động của nó đối với tài nguyên của hệ thống (CPU và RAM).
Liệt kê các tiến trình với 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 với tùy chọn -e.
ps -e
Việc một hệ thống có số lượng lớn các tiến trình hoạt động tại bất kỳ thời điểm nào là điều bình thường, do đó việc sàng lọc danh sách này dễ dàng hơn bằng cách chuyển lệnh đến nhiều hơn. Ví dụ: để xem 15 dòng cùng một lúc:
ps -e | more -15Đầu ra từ ps đang hiển thị mọi quy trình đang chạy, ID tiến trình tương ứng của nó (viết tắt là PID) và TTY (giao diện đầu cuối mà quy trình đang chạy). Một dấu hỏi trong cột TTY có nghĩa là quy trình không được đính kèm với bất kỳ giao diện đầu cuối nào - nó chỉ chạy trong nền.
Bạn có thể cần biết PID của một quy trình để tắt nó nó hoặc TTY để bạn có thể quay lại quy trình mở bằng cách gắn 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.
ps -auxGiống như tùy chọn trước, điều này sẽ liệt kê mọi quy trình đang chạy trên hệ thống của bạn. Tuy nhiên, nó cũng liệt kê việc sử dụng CPU và RAM hiện tại của từng tiến trình, cũng như lệnh sinh ra từng tiến trình.

Tìm một quy trình với pgrep
Loại pgrep command kết hợp ps và grep. Người dùng có thể chỉ định tên - hoặc một phần của tên - của một quy trình đang tìm kiếm và pgrep sẽ trả về ID quy trình tương ứng.
Ví dụ: để tìm kiếm bất kỳ quy trình liên quan đến SSH nào trên hệ thống của bạn, bạn sẽ gõ:
pgrep ssh
Như được hiển thị trong ảnh chụp màn hình ở trên, pgrep đã tìm thấy quy trình SSH có chỉ số PID là 1143. Để xác minh thêm, hãy kiểm tra bằng lệnh ps:
ps -e | grep 1143
Xem các tiến trình đang chạy với top
Tất nhiên, tiện ích hàng đầu 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 hiện đang chạy, hiển thị thông tin như bạn muốn thấy trong giao diện đồ họa. Thật dễ dàng để bắt đầu, chỉ cần gõ:
top
Dữ liệu từ đầu cung cấp cho chúng tôi rất nhiều thông tin, bao gồm cả việc sử dụng CPU và RAM tổng thể trên hệ thống của chúng tôi. Nhưng chúng tôi ở đây cho danh sách các quy trình, mà bạn sẽ tìm thấy ngay bên dưới đó.
Cửa sổ đầu cuối đơn giản là không đủ lớn để cho phép top liệt kê mọi quy trình đang chạy, do đó, top hiển thị càng nhiều càng tốt và sắp xếp chúng theo cách 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ị thấp hơn trong danh sách, có thể bị cắt từ cửa sổ đầu cuối.
Sử dụng các phím mũi tên trên bàn phím của bạn để cuộn lên xuống thông qua danh sách các quy trình.
Có khá nhiều thông tin được liệt kê về mỗi quy trình đang chạy. Dưới đây là tóm tắt nhanh về ý nghĩa của các cột khác nhau:
- PID : ID tiến trình của từng nhiệm vụ.
- PR : Ưu tiên lập lịch của một nhiệm vụ.
- NI : Giá trị của một nhiệm vụ. Số âm cho thấy 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 một tác vụ (R = đang chạy, S = đang ngủ).
- % CPU : Phần trăm CPU hiện tại đang được sử dụng bởi một tác vụ.
- % MEM : Phần trăm RAM hiện tại đang được sử dụng bởi một tác vụ.
- TIME + : Thời gian CPU của một tác vụ.
- LỆNH : Lệnh dùng để sinh ra nhiệm vụ.
Như đã đề cập, top là tương tác, vì vậy chúng ta có thể sử dụng một số phím tắt để làm một số thứ gọn gàng với nó. Chúng tôi sẽ giới thiệu một vài trong số những tiện dụng hơn dưới đây.
Nhấn phím z để mã màu chạy các quy trình. Điều này giúp dễ dàng phân biệt các tác vụ đang chạy với các quá trình ngủ hoặc zombie.

Nhấn phím c để nhận lệnh đầy đủ được sử dụng cho mỗi 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 được sử dụng.

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

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

Để có thêm tùy chọn, nhấn phím h (trợ giúp) để xem mọi thứ khác mà top có thể làm.
Khi bạn đã sử dụng xong tiện ích hàng đầu, 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 với htop
Tiện ích htop được xây dựng hàng đầu và thân thiện và thú vị hơn một chút khi nhìn vào. Hạn chế duy nhất là nó không được cài đặt trên tất cả các bản phân phối Linux theo mặc định, vì vậy bạn có thể cần phải cài đặt nó trước. Nó nên có trong kho của hệ điều hành của bạn, vì vậy đây là cách cài đặt nó với trình quản lý gói của bạn:
Debian và Ubuntu:
sudo apt-get install htopCentOS và Fedora:
dnf install htopRed Hat:
yum install htopSau khi cài đặt, chỉ cần gõ htop để chạy tiện ích.
htop
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ê ở dưới cùng của cửa sổ terminal. Nó hoạt động chủ yếu giống như trên cùng, nhưng với giao diện sạch hơn, dễ hiểu hơn.
Phần kết luận
Trong hướng dẫn này, iNET đã chỉ cho bạn một vài phương pháp khác nhau để xem các quy trình đang chạy trên hệ thống Linux. Cái nào bạn sử dụng sẽ phụ thuộc vào tình huống hiện tại và sở thích cá nhân của bạn, nhưng mỗi phương pháp đều có lợi ích riêng.