Lệnh pkill trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh pkill của Linux để kết thúc các tiến trình bằng tên hoặc ID tiến trình (PID) của chúng. Lệnh pkill là một công cụ mạnh mẽ để quản lý các tiến trình trong hệ thống Linux, vì nó cung cấp một cách thuận tiện để kill các tiến trình mà không cần phải biết chính xác PID của chúng. Bạn sẽ khám phá cách kết thúc các tiến trình bằng tên, cũng như cách kết thúc các tiến trình bằng PID của chúng. Lab này bao gồm các ví dụ thực tế và thể hiện tính linh hoạt của lệnh pkill trong các tác vụ quản lý tiến trình.

Tìm hiểu về Lệnh pkill

Trong bước này, bạn sẽ tìm hiểu về lệnh pkill trong Linux, cho phép bạn kết thúc các tiến trình bằng tên hoặc ID tiến trình (PID).

Lệnh pkill là một công cụ mạnh mẽ để quản lý các tiến trình trong hệ thống Linux. Nó cung cấp một cách thuận tiện để kill các tiến trình mà không cần phải biết chính xác PID của chúng. Điều này có thể đặc biệt hữu ích khi bạn cần kết thúc nhiều phiên bản của một tiến trình hoặc khi bạn không chắc chắn về PID chính xác của tiến trình bạn muốn kết thúc.

Để sử dụng lệnh pkill, bạn có thể chỉ định tên tiến trình hoặc một mẫu phù hợp với tên tiến trình. Sau đó, lệnh sẽ kết thúc tất cả các tiến trình phù hợp.

Dưới đây là một ví dụ về cách sử dụng pkill để kết thúc một tiến trình bằng tên:

sudo pkill -f firefox

Lệnh này sẽ kết thúc tất cả các tiến trình có tên "firefox".

Ví dụ đầu ra:

[1]+ Terminated              firefox

Bạn cũng có thể sử dụng tùy chọn -9 để gửi tín hiệu SIGKILL đến tiến trình, tín hiệu này sẽ buộc tiến trình kết thúc ngay lập tức:

sudo pkill -9 -f firefox

Lệnh này sẽ kết thúc tất cả các tiến trình có tên "firefox" bằng tín hiệu SIGKILL.

Ví dụ đầu ra:

[1]+ Killed                  firefox

Ngoài việc kết thúc các tiến trình bằng tên, bạn cũng có thể sử dụng pkill để kết thúc các tiến trình bằng PID của chúng. Để thực hiện việc này, bạn có thể sử dụng tùy chọn -P theo sau là PID:

sudo pkill -P 12345

Lệnh này sẽ kết thúc tiến trình có PID là 12345.

Ví dụ đầu ra:

[1]+ Terminated              process 12345

Hãy nhớ rằng, lệnh pkill là một công cụ mạnh mẽ, vì vậy hãy sử dụng nó một cách thận trọng để tránh vô tình kết thúc các tiến trình hệ thống quan trọng.

Kết thúc Tiến trình bằng Tên Tiến trình

Trong bước này, bạn sẽ học cách sử dụng lệnh pkill để kết thúc các tiến trình bằng tên tiến trình của chúng.

Đầu tiên, hãy bắt đầu một vài tiến trình mà chúng ta có thể sử dụng cho ví dụ này:

## Start a few processes
sleep 1000 &
firefox &
gedit &

Bây giờ, hãy sử dụng pkill để kết thúc tiến trình Firefox bằng tên của nó:

sudo pkill -f firefox

Ví dụ đầu ra:

[2]+ Terminated              firefox

Như bạn có thể thấy, tiến trình Firefox đã bị kết thúc.

Bạn cũng có thể sử dụng các ký tự đại diện (wildcards) với lệnh pkill để khớp với nhiều tiến trình theo tên. Ví dụ: để kết thúc tất cả các tiến trình có "gedit" trong tên của chúng:

sudo pkill -f gedit

Ví dụ đầu ra:

[3]+ Terminated              gedit

Nếu bạn muốn kết thúc tất cả các tiến trình phù hợp với một mẫu cụ thể, bạn có thể sử dụng tùy chọn -e để chỉ định một biểu thức chính quy (regular expression):

sudo pkill -ef 'sleep|firefox'

Lệnh này sẽ kết thúc tất cả các tiến trình có "sleep" hoặc "firefox" trong tên của chúng.

Ví dụ đầu ra:

[1]+ Terminated              sleep 1000
[2]+ Terminated              firefox

Hãy nhớ rằng, lệnh pkill là một công cụ mạnh mẽ, vì vậy hãy sử dụng nó một cách thận trọng để tránh vô tình kết thúc các tiến trình hệ thống quan trọng.

Kết thúc Tiến trình bằng ID Tiến trình

Trong bước này, bạn sẽ học cách sử dụng lệnh pkill để kết thúc các tiến trình bằng ID tiến trình (PID) của chúng.

Đầu tiên, hãy bắt đầu một tiến trình mới mà chúng ta có thể sử dụng cho ví dụ này:

## Start a new process
sleep 1000 &

Để lấy PID của tiến trình sleep, bạn có thể sử dụng lệnh ps:

ps -ef | grep sleep

Ví dụ đầu ra:

labex      3456  3455  0 11:30 pts/0    00:00:00 sleep 1000

Trong ví dụ này, PID của tiến trình sleep3456.

Bây giờ, hãy sử dụng pkill để kết thúc tiến trình bằng PID của nó:

sudo pkill -P 3456

Ví dụ đầu ra:

[1]+ Terminated              sleep 1000

Như bạn có thể thấy, tiến trình sleep đã bị kết thúc.

Bạn cũng có thể sử dụng tùy chọn -9 để gửi tín hiệu SIGKILL đến tiến trình, tín hiệu này sẽ buộc tiến trình kết thúc ngay lập tức:

sudo pkill -9 -P 3456

Lệnh này sẽ kết thúc tiến trình có PID là 3456 bằng tín hiệu SIGKILL.

Ví dụ đầu ra:

[1]+ Killed                  sleep 1000

Hãy nhớ rằng, lệnh pkill là một công cụ mạnh mẽ, vì vậy hãy sử dụng nó một cách thận trọng để tránh vô tình kết thúc các tiến trình hệ thống quan trọng.

Tóm tắt

Trong lab này, bạn đã tìm hiểu về lệnh pkill trong Linux, cho phép bạn kết thúc các tiến trình bằng tên hoặc ID tiến trình (PID). Bạn đã khám phá cách sử dụng pkill để kết thúc các tiến trình bằng tên của chúng, cung cấp các ví dụ về việc kết thúc tất cả các tiến trình có tên "firefox" bằng tín hiệu SIGTERM mặc định hoặc tín hiệu SIGKILL để buộc kết thúc ngay lập tức. Ngoài ra, bạn đã học cách kết thúc các tiến trình bằng PID của chúng bằng cách sử dụng tùy chọn -P. Lệnh pkill là một công cụ mạnh mẽ để quản lý các tiến trình trong hệ thống Linux, nhưng nó nên được sử dụng một cách thận trọng để tránh vô tình kết thúc các tiến trình hệ thống quan trọng.

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