Câu trả lời:
Bạn có thể sử dụng MacPorts :sudo port install proctools
Đây là kết quả của port search pgrep
:
proctools @0.4pre1 (sysutils)
pgrep, pkill and pfind for OpenBSD and Darwin (Mac OS X)
brew install proctools
Trên OS X Lion với Homebrew :
$ brew install proctools
Điều này tải về, xây dựng và cài đặt pgrep
, pkill
và pfind
.
Giả sử rằng bạn đang sử dụng một số phiên bản Bash tương đối gần đây trong Mac, bạn có thể viết phiên bản pgrep
hàm riêng của mình và sau đó thêm nó vào .bashrc
tệp của mình :
function pgrep() {
ps aux | grep $1 | grep -v grep
}
như đối với pkill
bạn có thể sử dụng như sau:
function pkill() {
local pid
pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
kill -9 $pid
echo -n "Killed $1 (process $pid)"
}
function
từ khóa, nó không được dùng nữa. Xem bài đăng này
Proctools bao gồm pgrep
và pkill
có sẵn cho OpenBSD và OSX. Nó đã không được cập nhật trong một thời gian, nhưng nó vẫn hoạt động (ít nhất là trên OSX mà hiếm khi sửa đổi ABI của nó).
bạn có thể thử killall. Nó giết các quá trình theo tên. Bất kỳ quy trình nào khớp với chuỗi bạn truyền vào đều bị giết.
killall httpd ( kill all apache processes )
killall php ( kill all php process )
Nếu bạn làm
killall -s man ( kill any manual page processes, if a user is using man [command]
nó sẽ hiển thị cho bạn một danh sách các quy trình sẽ bị giết như dưới đây.
kill -TERM 70836
Nếu bạn muốn có một tín hiệu khác, hãy làm như sau
killall -9 processname
Đây là giải pháp của tôi cho pkill:
#!/bin/sh
for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
kill -9 $X;
done