Chuyển đến nội dung chính
Mô-đun 5 · Bài học 1 trong tổng số 210/11 trong khóa học~12 min
Bài học theo mô-đun (1/2)

Quản lý tiến trình (ps và kill)

Trong Linux, mọi chương trình đang chạy đều được gọi là process. Mỗi quy trình được gán một mã định danh số duy nhất được gọi là PID (ID quy trình). Hiểu cách giám sát và quản lý các quy trình này là điều cần thiết để giữ cho hệ thống ổn định và hoạt động.


Quy trình giám sát: ps

Lệnh ps (trạng thái quy trình) hiển thị ảnh chụp nhanh các quy trình hiện tại. Theo mặc định, nó chỉ liệt kê các tiến trình được liên kết với người dùng hiện tại và cửa sổ terminal hiện tại.

Để có cái nhìn đầy đủ về tất cả các tiến trình đang chạy trên hệ thống, tổ hợp tùy chọn BSD aux thường được sử dụng:

  • a: Hiển thị quy trình cho tất cả người dùng.
  • u: Hiển thị chủ sở hữu tiến trình và mức sử dụng tài nguyên CPU/Bộ nhớ.
  • x: Liệt kê các quy trình không được liên kết với bất kỳ thiết bị đầu cuối nào (như các dịch vụ nền).
Bash
ps aux

Đầu ra của ps aux là một bảng có cấu trúc hiển thị các cột quan trọng như USER, PID, %CPU, %MEM và COMMAND (lệnh bắt đầu quá trình).


Quá trình chấm dứt: kill và killall

Nếu một quá trình ngừng phản hồi hoặc tiêu tốn quá nhiều tài nguyên, chúng ta có thể chấm dứt nó bằng cách gửi tín hiệu.

Lệnh kill

Lệnh kill gửi tín hiệu đến một quy trình được chỉ định bởi PID của nó:

Bash
kill 2048       # Sends the SIGTERM (15) signal, requesting a clean shutdown
kill -9 2048    # Sends the SIGKILL (9) signal, forcing immediate termination

[!CẢNH BÁO] Chỉ sử dụng kill -9 như là phương sách cuối cùng vì nó không cho phép chương trình lưu dữ liệu hoặc đóng các tệp đang mở một cách sạch sẽ.

Lệnh killall

Nếu bạn không biết PID hoặc muốn chấm dứt tất cả các quy trình của chương trình theo tên, bạn có thể sử dụng killall:

Bash
killall python  # Terminates all processes named 'python'

Hãy tự mình thử

Bài tập 1: Liệt kê tất cả các tiến trình

tập thể dục#linux.m5.l1.e1
Nỗ lực: 0Đang tải…

Hiển thị danh sách đầy đủ tất cả các tiến trình đang chạy trên hệ thống bằng các tùy chọn 'aux'.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Sử dụng lệnh 'ps', sau đó là tùy chọn 'aux'.

Giải pháp khả dụng sau 3 lần thử

Bài tập 2: Chấm dứt một tiến trình bằng PID

tập thể dục#linux.m5.l1.e2
Nỗ lực: 0Đang tải…

Chấm dứt quá trình python với PID 2048 bằng lệnh 'kill'.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Sử dụng 'kill' theo sau là PID của quy trình (2048).

Giải pháp khả dụng sau 3 lần thử

Bài tập 3: Chấm dứt tất cả các tiến trình theo tên

tập thể dục#linux.m5.l1.e3
Nỗ lực: 0Đang tải…

Chấm dứt tất cả các tiến trình đang chạy được liên kết với chương trình 'python' bằng lệnh 'killall'.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Sử dụng 'killall' theo sau là tên chương trình, trong trường hợp này là 'python'.

Giải pháp khả dụng sau 3 lần thử