Hướng dẫn sử dụng lệnh pkill Linux cho người mới bắt đầu (5 ví dụ)

theanh

Administrator
Nhân viên
Trong Linux, nếu bạn cần giết một tiến trình (vì bất kỳ lý do gì) thông qua dòng lệnh, bạn có thể sử dụng lệnh kill, lệnh này yêu cầu bạn phải truyền ID của tiến trình mà bạn đang cố gắng chấm dứt làm đầu vào. Nhưng bạn có biết rằng cũng có một cách để giết các tiến trình mà không cần chỉ định PID của chúng không?

Có, có một công cụ - được gọi là pkill - cho phép bạn thực hiện việc này. Trong bài viết này, chúng ta sẽ thảo luận về những điều cơ bản của lệnh này bằng một số ví dụ dễ hiểu. Nhưng trước khi làm điều đó, cần đề cập rằng tất cả các ví dụ ở đây đã được thử nghiệm trên máy Ubuntu 18.04 LTS và Debian 10.

Lệnh pkill Linux​

Lệnh pkill trong Linux về cơ bản là một cách dễ dàng hơn để giết các tiến trình. Sau đây là cú pháp của nó:
Mã:
pkill [options] pattern
Và đây là những gì trang hướng dẫn nói về công cụ này:
Mã:
pkill - báo hiệu các tiến trình dựa trên tên và các thuộc tính khác
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lệnh pkill hoạt động.

Câu hỏi 1. Làm thế nào để sử dụng lệnh pkill?​

Cách sử dụng cơ bản khá đơn giản - tất cả những gì bạn phải làm là thực thi 'pkill' với tên tiến trình làm đầu vào.

Ví dụ, nếu bạn đang cố gắng giết tiến trình 'gedit', bạn có thể thực hiện điều đó bằng cách sử dụng pkill theo cách sau:
Mã:
pkill gedit
Vậy là xong. Bạn sẽ thấy tiến trình gedit (nếu đang chạy) sẽ bị giết khi thực thi lệnh được đề cập ở trên.

Câu hỏi 2. Làm thế nào để pkill gửi một tín hiệu khác?​

Như đã đề cập ở phần đầu của bài viết này, lệnh pkill về cơ bản sẽ gửi một tín hiệu đến tiến trình. Theo mặc định, tín hiệu SIGTERM được gửi, nhưng nếu muốn, bạn có thể thay đổi tín hiệu bằng tùy chọn dòng lệnh --signal.

Ví dụ:
Mã:
pkill --signal [ICODE]SIGKILL[/ICODE] gedit

Câu hỏi 3. Làm thế nào để tắt tiến trình dựa trên dòng lệnh đầy đủ?​

Theo mặc định, tên đầu vào (mẫu) được khớp với tên tiến trình. Tuy nhiên, nếu muốn, bạn có thể làm cho pkill khớp với toàn bộ dòng lệnh. Điều này có thể được thực hiện bằng tùy chọn dòng lệnh -f.

Ví dụ, giả sử có hai lệnh ping đang chạy trên hệ thống của tôi. Sau đây là một đoạn trích được lấy từ đầu ra của lệnh ps:
Mã:
...
root 19253 0.0 0.1 9180 2916 pts/1 S+ 19:24 0:00 ping google.com
root 19331 0.0 0.1 9180 2912 pts/2 S+ 19:25 0:00 ping howtoforge.com
...
Bây giờ, giả sử yêu cầu chỉ là tắt lệnh 'ping google.com' bằng cách sử dụng pkill.

Nếu bạn sử dụng pkill theo cách sau:
Mã:
pkill ping
thì cả hai lệnh sẽ bị tắt. Vì vậy, để tránh điều đó, chúng ta có thể sử dụng tùy chọn dòng lệnh -f. Sau đây là cách sử dụng lệnh này:
Mã:
pkill -f "ping google.com"
Tôi đã thực thi lệnh trong cửa sổ terminal đầu tiên:



Kết quả trong cửa sổ terminal thứ hai nơi tiến trình ping đang chạy:



Vì vậy, khi lệnh nói trên được thực thi, chỉ có lệnh được đề cập là đầu vào bị tắt.

Câu hỏi 4. Làm thế nào để pkill không phân biệt chữ hoa chữ thường?​

Theo mặc định, lệnh pkill phân biệt chữ hoa chữ thường, nghĩa là nó xử lý tên viết hoa và viết thường khác nhau. Tuy nhiên, nếu muốn, bạn có thể buộc pkill không phân biệt chữ hoa chữ thường, bạn có thể thực hiện điều này bằng cách sử dụng tùy chọn dòng lệnh -i.
Mã:
pkill -i [process-name]

Câu hỏi 5. Làm thế nào để syslog đọc lại tệp cấu hình của nó bằng pkill?​

Bạn có thể sử dụng lệnh pkill theo cách sau để thực hiện điều này:
Mã:
pkill -HUP syslogd

Kết luận​

Vì vậy, pkill là một lệnh cực kỳ hữu ích khi nói đến việc giết các tiến trình. Chúng ta đã thảo luận về một số tùy chọn dòng lệnh mà lệnh này cung cấp. Sau khi thực hành xong các tùy chọn này, bạn có thể tìm hiểu thêm về lệnh bằng cách truy cập trang hướng dẫn của lệnh.
 
Back
Bên trên