Các tiện ích pgrep
và pkill
tiện ích đã được giới thiệu trong Sun's Solaris 7 và, như g33klord đã lưu ý , chúng lấy một mẫu làm đối số phù hợp với tên của các quy trình đang chạy. Mặc dù pgrep
chỉ in một danh sách các quy trình phù hợp, pkill
sẽ gửi tín hiệu được chỉ định (hoặc SIGTERM
theo mặc định) cho các quy trình. Các tùy chọn phổ biến và ngữ nghĩa giữa pgrep
và pkill
có ích khi bạn muốn cẩn thận và trước tiên hãy xem lại các quy trình khớp danh sách với pgrep
, sau đó tiến hành tiêu diệt chúng pkill
. pgrep
và pkill
được cung cấp bởi các procps gói, mà còn cung cấp khác /proc
tiện ích hệ thống tập tin, chẳng hạn như ps
, top
, free
, uptime
số những người khác.
Các killall
lệnh được cung cấp bởi psmisc gói, và khác với pkill
ở chỗ, theo mặc định, nó phù hợp với tên lập luận chính xác (lên đến 15 ký tự đầu tiên) khi xác định các quá trình tín hiệu sẽ được gửi đến. Các -e
, --exact
tùy chọn có thể được xác định cũng yêu cầu kết hợp chính xác cho tên dài hơn 15 ký tự. Điều này làm cho killall
phần nào an toàn hơn để sử dụng so với pkill
. Nếu đối số đã chỉ định chứa /
ký tự dấu gạch chéo ( ), đối số được hiểu là tên tệp và các quy trình đang chạy tệp cụ thể đó sẽ được chọn làm người nhận tín hiệu. killall
cũng hỗ trợ phù hợp với biểu thức chính quy của tên quá trình, thông qua -r
, --regexp
tùy chọn.
Có những khác biệt khác là tốt. Các killall
lệnh ví dụ có các tùy chọn cho các quy trình phù hợp theo độ tuổi ( -o
, --older-than
và -y
, --younger-than
), trong khi pkill
có thể được nói đến quá trình giết chỉ trên một thiết bị đầu cuối cụ thể (thông qua -t
tùy chọn). Rõ ràng sau đó, hai lệnh có hốc cụ thể.
Lưu ý rằng killall
lệnh trên hệ thống hậu duệ từ Unix System V (đáng chú ý là Sun's Solaris , AIX và HP-UX của IBM ) sẽ giết tất cả các quy trình có thể bị giết bởi một người dùng cụ thể, tắt hệ thống một cách hiệu quả nếu chạy bằng root.
Các tiện ích psmisc của Linux đã được chuyển sang BSD (và trong phần mở rộng Mac OS X ), do đó killall
có các ngữ nghĩa "tiêu diệt theo tên".