要查找要杀死的进程的 PID,请使用:
pgrep <process command>
然后我使用kill命令来杀死由pgrep <process command>
kill <PID>
这些命令是否可以合并为一个,以便杀死 PID 或返回的 PID pgrep <process command>
?或者是否有一种方法通过命令名称杀死多个进程?
就像是 :kill(pgrep <name of process>)
答案1
您可以使用 pkill:
pkill httpd
您可能还想使用进程替换(尽管这不太清楚):
kill $(pgrep command)
您可能想要使用xargs
:
pgrep command | xargs kill
答案2
您killall
也可以使用,例如
killall firefox
发送SIGTERM
到所有firefox
进程。
答案3
是的,您可以使用 bash 功能并循环输出。
$ for proc in $(pgrep <process command>); do kill $proc; done
答案4
当您运行脚本时,特别是以堆叠方式运行脚本时,给出进程名称对我来说不起作用。因此我使用这个简单的命令:
ps -eaf | grep -i script_hint (or whatever condition is) | awk '{print $2}' | xargs kill -15