Lệnh kill trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh kill của Linux để kết thúc các tiến trình và gửi tín hiệu đến các tiến trình đang chạy. Lab bao gồm mục đích của lệnh kill, cách kết thúc tiến trình bằng lệnh và khám phá các tùy chọn nâng cao cho lệnh kill. Bạn sẽ bắt đầu các tiến trình chạy dài và sau đó sử dụng lệnh kill để kết thúc chúng, cũng như tìm hiểu về các tín hiệu khác nhau có thể được gửi đến các tiến trình. Lab này cung cấp các ví dụ thực tế và sự hiểu biết vững chắc về lệnh kill, một công cụ thiết yếu để quản lý tiến trình trong Linux.

Hiểu Mục Đích của Lệnh kill

Trong bước này, bạn sẽ tìm hiểu về mục đích của lệnh kill trong Linux. Lệnh kill được sử dụng để kết thúc hoặc gửi tín hiệu đến các tiến trình đang chạy.

Lệnh kill cho phép bạn:

  • Kết thúc một tiến trình bằng cách gửi tín hiệu đến nó
  • Gửi các tín hiệu khác nhau đến một tiến trình, chẳng hạn như SIGTERM (mặc định), SIGINT, SIGKILL, v.v.
  • Kết thúc các tiến trình bằng ID tiến trình (PID) hoặc tên tiến trình của chúng

Hãy bắt đầu bằng cách chạy một lệnh đơn giản tạo ra một tiến trình chạy dài:

sleep 1000 &

Điều này sẽ bắt đầu một tiến trình sleep chạy trong 1000 giây ở chế độ nền.

Để xem PID của tiến trình sleep, hãy chạy:

ps aux | grep sleep

Ví dụ đầu ra:

labex      5678  0.0  0.0   8192   728 pts/0    S    12:34   0:00 sleep 1000

PID của tiến trình sleep5678.

Bây giờ, hãy kết thúc tiến trình này bằng lệnh kill:

kill 5678

Tiến trình sleep sẽ kết thúc ngay lập tức.

Kết Thúc Tiến Trình Bằng Lệnh kill

Trong bước này, bạn sẽ học cách kết thúc các tiến trình bằng lệnh kill.

Trước tiên, hãy bắt đầu một tiến trình chạy dài mới:

sleep 1000 &

Điều này sẽ bắt đầu một tiến trình sleep mới chạy trong 1000 giây ở chế độ nền.

Để xem PID của tiến trình sleep, hãy chạy:

ps aux | grep sleep

Ví dụ đầu ra:

labex      5678  0.0  0.0   8192   728 pts/0    S    12:34   0:00 sleep 1000

PID của tiến trình sleep5678.

Bây giờ, hãy kết thúc tiến trình này bằng lệnh kill:

kill 5678

Tiến trình sleep sẽ kết thúc ngay lập tức.

Để xác minh rằng tiến trình đã bị kết thúc, hãy chạy lại lệnh sau:

ps aux | grep sleep

Đầu ra sẽ không hiển thị tiến trình sleep nữa.

Khám Phá Các Tùy Chọn Nâng Cao của Lệnh kill

Trong bước này, bạn sẽ khám phá một số tùy chọn nâng cao của lệnh kill.

Lệnh kill có thể gửi các tín hiệu khác nhau đến các tiến trình. Tín hiệu mặc định là SIGTERM, yêu cầu tiến trình kết thúc một cách duyên dáng. Tuy nhiên, bạn cũng có thể gửi các tín hiệu khác, chẳng hạn như SIGINT (ngắt), SIGKILL (kết thúc ngay lập tức), v.v.

Hãy bắt đầu bằng cách tạo một tiến trình chạy dài mới:

sleep 1000 &

Bây giờ, hãy kết thúc tiến trình bằng tín hiệu SIGINT:

kill -SIGINT 5678

Tiến trình sleep sẽ bị gián đoạn và kết thúc.

Bạn cũng có thể sử dụng số tín hiệu thay vì tên tín hiệu:

kill -2 5678

Điều này sẽ gửi tín hiệu SIGINT đến tiến trình có PID 5678.

Một tùy chọn hữu ích khác là tùy chọn -9, gửi tín hiệu SIGKILL. Tín hiệu này không thể bị bỏ qua bởi tiến trình và sẽ kết thúc nó ngay lập tức:

kill -9 5678

Tín hiệu SIGKILL là một tùy chọn "cuối cùng" khi tiến trình không phản hồi các tín hiệu khác.

Tóm tắt

Trong lab này, bạn đã tìm hiểu về mục đích của lệnh kill trong Linux, được sử dụng để kết thúc hoặc gửi tín hiệu đến các tiến trình đang chạy. Bạn bắt đầu bằng cách chạy một tiến trình sleep chạy dài và sau đó kết thúc nó bằng lệnh kill với ID tiến trình (PID). Bạn cũng đã khám phá các tùy chọn nâng cao của lệnh kill, chẳng hạn như gửi các tín hiệu khác nhau đến các tiến trình, kết thúc các tiến trình bằng tên của chúng và sử dụng lệnh killall để kết thúc nhiều tiến trình cùng một lúc.

400+ câu lệnh phổ biến trong Linux