我有两个临时生成的进程,我需要杀死它们。以下是来自的流程ps aux
david 38329 0.0 5.0 3916476 104624 s002 S 11:33AM 0:17.43 /Applications/Firefox.a
david 38319 0.0 0.0 2442472 1028 s002 S 11:33AM 0:00.10 Xvfb -br -screen 0 800x
david 38268 0.0 0.2 3012352 4960 ?? S 11:02AM 0:00.24 /System/Library/Framewo
david 38261 0.0 3.4 3913364 70724 s002 S 11:02AM 0:08.51 /Applications/Firefox.a
我如何杀死所有要么是 要么Xvfb
的进程Firefox
?
更新:我能够使用$ sudo killall Xvfb
杀死该进程,但在使用 Firefox 时仍然遇到问题:
davids-Mac-mini:financials david$ ps aux|grep firefox
david /Applications/Firefox.app/Contents/MacOS/firefox-bin -foreground
david /Applications/Firefox.app/Contents/MacOS/firefox-bin -foreground
david grep firefox
davids-Mac-mini:financials david$ sudo killall firefox
No matching processes were found
答案1
如果您想按名称执行此操作:
killall firefox
如果您想终止特定进程,例如第一个 Firefox 实例:
kill 38329
如果该进程不想继续,您可以使用:
kill -KILL 38261
程序不应该有办法阻止操作系统终止它现在。
更新:要查看命令的所有可用进程名称的列表killall
,您可以使用:
ps -axco command | sort | uniq
答案2
你可以做
kill `pgrep Xvfb` `pgrep Firefox`
您可以添加 -f 来搜索整个命令,以防没有 -f 就找不到它。
pgrep -f Firefox
还有 pkill 与 pgrep 具有相同的输入
pkill Xvfb; pkill -f Firefox;
答案3
此函数杀死与应用程序相关的所有进程。你可以这样称呼它:killapp chrome
killapp () {
processes=($(pidof $1))
for pid in $processes
do
kill -9 $pid
done
}
如果您使用的是 macOS 并且尚未pidof
安装,您可以安装它brew
或使用它pgrep
。
我认为pidof
效果最好,因为它发现全部与给定应用程序相关的进程,但情况并非总是如此pgrep
。