Cách chấm dứt các quá trình không phản hồi trong Linux với kill và pkill | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Xử lý các chương trình không phản hồi có thể là một công việc khó khăn, đặc biệt nếu bạn đang chạy trên phần cứng cũ. Rất may là có rất nhiều cách để loại bỏ các quy trình không phản hồi trong Linux.

Các lệnh kill và pkill cung cấp các giải pháp đơn giản nhưng hiệu quả để chấm dứt các quá trình không phản hồi từ terminal. Bài viết dưới đây mô tả cách chấm dứt các tiến trình bị treo trong Linux bằng cách sử dụng killpkill.

Chấm dứt các quá trình không phản hồi bằng cách sử dụng kill

Lệnh kill trong Linux cho phép bạn thoát khỏi các quá trình không phản hồi một cách dễ dàng. Nó gửi một tín hiệu kết thúc đến quá trình đó. Theo mặc định, kill gửi tín hiệu SIGTERM, được biểu thị bằng tín hiệu số 15 . Ví dụ sau sử dụng lệnh kill để đóng quá trình có PID là 27065.

kill 27065

Người dùng có thể gửi các tín hiệu khác bằng cách chỉ định tên hoặc số tín hiệu. Ví dụ: các lệnh kill dưới đây dừng một quá trình bị treo bằng cách sử dụng tín hiệu hệ thống SIGKILL, được biểu thị bằng tín hiệu số 9 .

kill -9 27065
kill -SIGKILL 27065

Sự khác biệt giữa SIGTERM và SIGKILL là các quá trình có thể nhận và bỏ qua tín hiệu SIGTERM. Tuy nhiên, SIGKILL đóng các chương trình ngay lập tức.

dừng quá trình zombie bằng cách sử dụng lệnh kill trong linux

Bạn có thể xem danh sách tất cả các tín hiệu có sẵn bằng cách sử dụng các lệnh kill bên dưới.

kill -l
kill -L

Nhìn chung, SIGKILL sẽ phù hợp hơn khi xử lý các quy trình hệ thống không phản hồi. Mặt khác, SIGTERM là lựa chọn tốt hơn nếu bạn muốn chấm dứt các chương trình bị treo một cách suôn sẻ.

Đóng các quy trình không phản hồi bằng pkill

Lệnh pkill làm cho quá trình kết thúc trong Linux dễ dàng hơn bằng cách cho phép chúng ta đóng các chương trình dựa trên tên của chúng. Ví dụ: lệnh dưới đây đóng chương trình nano bằng cách sử dụng pkill.

pkill nano

Giống như kill, pkill cũng gửi tín hiệu SIGTERM theo mặc định. Sử dụng tín hiệu SIGKILL nếu bạn muốn dừng quá trình không phản hồi ngay lập tức.

pkill -9 nano

chấm dứt quá trình không phản hồi trong Linux bằng pkill

Cách lấy ID (PID) của một quy trình

Có thông tin PID (Viết tắt của Process ID, hay ID quy trình) có thể giúp ích rất nhiều khi chấm dứt các quy trình không phản hồi trong Linux. Bạn có thể lấy số PID của một quy trình theo một số cách. Lệnh sau lấy PID của một quá trình có tên là nano bằng cách sử dụng lệnh grep và ps.

ps aux | grep nano

Bạn cũng có thể sử dụng lệnh pgrep, lệnh này sẽ xuất trực tiếp PID.

pgrep nano

tìm id quy trình hoặc pid n Linux

Xử lý quy trình không phản hồi trên Linux

Các lệnh kill và pkill giúp cho việc xử lý các quy trình không phản hồi trong Linux trở nên dễ dàng. Tất cả những gì bạn cần để ngăn quá trình bị treo là PID của nó và quyền truy cập vào một shell. Tuy nhiên, bạn có thể cần thêm quyền sudo khi hủy các quy trình thuộc về người dùng khác. Vì vậy, nếu bạn đang sử dụng hệ thống nhiều người dùng, hãy yêu cầu quản trị viên thêm bạn vào danh sách sudoers trước khi bạn thực hiện bất kỳ hành động nào.

Dịch từ: https://www.makeuseof.com/terminate-unresponsive-processes-in-linux-with-kill-and-pkill/

Vân Nguyễn