杀死与应用程序相关的所有进程

杀死与应用程序相关的所有进程

我有两个临时生成的进程,我需要杀死它们。以下是来自的流程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

相关内容