Android

Làm thế nào để giết một tiến trình trong linux

Linux Command Line (08) Output Redirection

Linux Command Line (08) Output Redirection

Mục lục:

Anonim

Bạn đã bao giờ phải đối mặt với tình huống bạn khởi chạy một ứng dụng, và đột nhiên trong khi bạn đang sử dụng ứng dụng, nó trở nên không phản hồi và gặp sự cố bất ngờ? Bạn cố gắng khởi động lại ứng dụng, nhưng không có gì xảy ra vì quá trình ứng dụng ban đầu không bao giờ thực sự tắt hoàn toàn.

Vâng, nó đã xảy ra với tất cả chúng ta tại một số điểm, phải không? Giải pháp là chấm dứt hoặc giết quá trình ứng dụng. Nhưng bằng cách nào?

May mắn thay, có một số tiện ích trong Linux cho phép bạn tiêu diệt các quá trình sai lầm., chúng tôi sẽ chỉ cho bạn cách sử dụng các kill , killall pkill để chấm dứt một tiến trình trong Linux.

Sự khác biệt chính giữa các công cụ này là việc kill các tiến trình dựa trên số ID tiến trình (PID), trong khi các lệnh killall pkill chấm dứt các tiến trình đang chạy dựa trên tên của chúng và các thuộc tính khác.

Người dùng thông thường có thể giết các quy trình của riêng họ, nhưng không phải các quy trình thuộc về người dùng khác, trong khi người dùng root có thể giết tất cả các quy trình.

Tín hiệu tiêu diệt hệ thống

kill , killall pkill gửi một tín hiệu nhất định đến các quy trình hoặc nhóm quy trình được chỉ định. Khi không có tín hiệu nào được chỉ định, mỗi công cụ sẽ gửi 15 ( TERM ).

Các tín hiệu thường được sử dụng là:

  • 1 (-HUP): để tải lại một quy trình. 9 (-KILL): để giết một quá trình. 15 (-TERM): để duyên dáng dừng một quá trình.

Tín hiệu có thể được chỉ định theo ba cách khác nhau:

  • sử dụng số (ví dụ: -1) với tiền tố của SIGv ((ví dụ: -SIGHUP) mà không có tiền tố của SIG, (ví dụ: -HUP).

Sử dụng tùy chọn -l để liệt kê tất cả các tín hiệu có sẵn:

kill -l # or killall -l

Các bước được nêu dưới đây sẽ hoạt động trên tất cả các bản phân phối Linux.

Chấm dứt quá trình sử dụng lệnh kill

Để chấm dứt một quá trình với lệnh kill , trước tiên bạn cần tìm quá trình PID. Bạn có thể làm điều này bằng các lệnh khác nhau như top , ps , pidof pgrep .

Giả sử trình duyệt Firefox đã không phản hồi và bạn cần phải hủy quy trình Firefox. Để tìm ID tiến trình, sử dụng lệnh pidof :

pidof firefox

Lệnh sẽ in tất cả các quy trình Firefox:

2551 2514 1963 1856 1771

Khi bạn biết Firefox xử lý các PID để chấm dứt tất cả chúng gửi tín hiệu TERM :

kill -9 2551 2514 1963 1856 1771

Chấm dứt quá trình sử dụng lệnh killall

Lệnh killall chấm dứt tất cả các chương trình khớp với tên đã chỉ định.

Sử dụng kịch bản tương tự như trước đây, bạn có thể giết tiến trình Firefox bằng cách nhập:

killall -9 firefox

killall chấp nhận một số tùy chọn như gửi tín hiệu đến các quy trình thuộc sở hữu của một người dùng nhất định, khớp các tên quy trình với các biểu thức thông thường và thời gian tạo. Bạn có thể nhận được một danh sách tất cả các tùy chọn bằng cách nhập killall (không có bất kỳ đối số nào) trên thiết bị đầu cuối của bạn.

Ví dụ: để chấm dứt tất cả các quy trình đang chạy với tư cách là một người dùng, bạn sẽ chạy lệnh sau:

sudo killall -u sara

Chấm dứt quá trình sử dụng lệnh pkill

pkill chấm dứt các quá trình khớp với mẫu được đưa ra trên dòng lệnh:

pkill -9 firefox

Tên của quá trình không phải là một kết hợp chính xác.

Với pkill bạn cũng có thể gửi tín hiệu đến các quy trình thuộc sở hữu của một người dùng nhất định. Để chỉ giết các quy trình firefox do người dùng sở hữu, bạn sẽ gõ:

pkill -9 -u sara firefox

Phần kết luận

Chấm dứt các chương trình không phản hồi bằng cách sử dụng các kill , killall pkill là một nhiệm vụ dễ dàng. Bạn chỉ cần biết tên quy trình hoặc PID.

giết thiết bị đầu cuối