Lệnh Kill trong linux – Android 2022

Linux là một hệ điều hành tuyệt vời và tiên tiến, nhưng nó không hoàn hảo. Thỉnh thoảng, một số ứng dụng có thể bắt đầu hoạt động thất thường và trở nên không phản hồi hoặc bắt đầu tiêu tốn nhiều tài nguyên hệ thống. Các ứng dụng không phản hồi không thể được khởi động lại vì quy trình ứng dụng gốc không bao giờ tắt hoàn toàn. Giải pháp duy nhất là khởi động lại hệ thống hoặc tắt tiến trình ứng dụng.

Có một số tiện ích cho phép bạn chấm dứt các quá trình sai lầm với

kill

được sử dụng phổ biến nhất.


kill

lệnh


kill

là một shell được tích hợp trong hầu hết các shell có nguồn gốc từ Bourne như Bash và Zsh. Hành vi lệnh hơi khác nhau giữa các shell và thực thi độc lập

/bin/kill

.

Sử dụng lệnh

type

để hiển thị tất cả các vị trí trên hệ thống của bạn có chứa

kill

:


type -a kill


kill is a shell builtin kill is /bin/kill

Đầu ra ở trên cho biết rằng phần tử dựng sẵn có mức độ ưu tiên so với tệp thực thi độc lập và nó được sử dụng bất cứ khi nào bạn gõ

kill

. Nếu bạn muốn sử dụng nhị phân, hãy nhập đường dẫn đầy đủ đến tệp

/bin/kill

., chúng tôi sẽ sử dụng nội dung Bash.

Cú pháp của lệnh

kill

có dạng sau:


kill…

Lệnh

kill

sẽ gửi tín hiệu đến các quy trình hoặc nhóm quy trình được chỉ định, khiến chúng hoạt động theo tín hiệu. Khi tín hiệu không được chỉ định, nó mặc định là

-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.

Để có danh sách tất cả các tín hiệu khả dụng, hãy gọi lệnh với tùy chọn

-l

:


kill -l

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

  1. Sử dụng số (ví dụ:

    -1

    hoặc

    -s 1

    ). Sử dụng tiền tố của SIG, (ví dụ:

    -SIGHUP

    hoặc

    -s SIGHUP

    ).

Các lệnh sau tương đương với nhau:


kill -1 PID_NUMBER


kill -SIGHUP PID_NUMBER


kill -HUP PID_NUMBER

Các PID được cung cấp cho lệnh

kill

có thể là một trong những điều sau đây:

  • Nếu

    PID

    lớn hơn 0, tín hiệu được gửi đến tiến trình có ID bằng với

    PID

    . Nếu

    PID

    bằng 0, tín hiệu được gửi đến tất cả các quy trình trong nhóm quy trình hiện tại. Nói cách khác, tín hiệu được gửi đến tất cả các quá trình thuộc GID của shell đã gọi lệnh

    kill

    . Sử dụng lệnh

    ps -efj

    để xem ID nhóm quy trình (GID). Nếu

    PID

    bằng

    -1

    , tín hiệu được gửi đến tất cả các quy trình có cùng UID khi người dùng gọi lệnh. Nếu người dùng gọi là root, tín hiệu được gửi đến tất cả các quy trình ngoại trừ init và chính quá trình

    kill

    Nếu

    PID

    nhỏ hơn

    -1

    , tín hiệu được gửi đến tất cả các quy trình trong nhóm quy trình eq với GID bằng giá trị tuyệt đối của

    PID

    .

Người dùng thông thường có thể gửi tín hiệu đến các quy trình của riêng họ, nhưng không gửi tín hiệu cho người dùng khác, trong khi người dùng root có thể gửi tín hiệu đến các quy trình của người dùng khác.

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

kill

Để chấm dứt hoặc giết một tiến trình bằng lệnh

kill

, trước tiên bạn cần tìm số ID tiến 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 các PID trình duyệt, sử dụng lệnh

pidof

:


pidof firefox

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


6263 6199 6142 6076

Khi bạn biết các số tiến trình, bạn có thể chấm dứt tất cả chúng bằng cách gửi tín hiệu

TERM

:


kill -9 2551 2514 1963 1856 1771

Thay vì tìm kiếm các PID và sau đó kết thúc các tiến trình, bạn có thể kết hợp các lệnh trên thành một:


kill -9 $(pidof firefox)

Quá trình tải lại bằng lệnh

kill

Một trường hợp sử dụng phổ biến khác cho

kill

là gửi tín hiệu

HUP

, thông báo cho các quá trình tải lại cài đặt của nó.

Ví dụ, để tải lại Nginx, bạn cần gửi tín hiệu đến quy trình chính. ID tiến trình của quy trình chính Nginx có thể được tìm thấy trong tệp

nginx.pid

, thường được đặt trong thư mục

/var/run

.

Sử dụng lệnh

cat

để tìm PID chính:


cat /var/run/nginx.pid


30251

Khi bạn tìm thấy PID chính tải lại cài đặt Nginx bằng cách nhập:


sudo kill -1 30251

Lệnh trên phải được chạy dưới quyền root hoặc người dùng có quyền sudo.

Phần kết luận

Lệnh

kill

được sử dụng để gửi tín hiệu đến các tiến trình. Tín hiệu được sử dụng thường xuyên nhất là

SIGKILL

hoặc

-9

, kết thúc các quá trình đã cho.

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

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