Answers:
假设您在Mac中使用的是相对较新版本的Bash,则可以编写自己的pgrep
as函数版本,然后将其添加到.bashrc
文件中:
function pgrep() {
ps aux | grep $1 | grep -v grep
}
至于pkill
你可以使用以下:
function pkill() {
local pid
pid=$(ps ax | grep $1 | grep -v grep | awk '{ print $1 }')
kill -9 $pid
echo -n "Killed $1 (process $pid)"
}
Proctools包括pgrep
和pkill
可用于OpenBSD和OSX。它已经有一段时间没有更新了,但是仍然可以正常工作(至少在很少修改其ABI的OSX上)。
您可以尝试杀死所有。它按名称杀死进程。与您传入的字符串匹配的所有进程都会被杀死。
killall httpd ( kill all apache processes )
killall php ( kill all php process )
如果你这样做
killall -s man ( kill any manual page processes, if a user is using man [command]
它会向您显示将被杀死的进程列表,如下所示。
kill -TERM 70836
如果您想要其他信号,请执行以下操作
killall -9 processname
这是我解决问题的方法:
#!/bin/sh
for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
kill -9 $X;
done