如何终止 3 个名称完全不同的进程?

如何终止 3 个名称完全不同的进程?

我想终止 3 个名称不同、毫无共同点的进程。我该怎么做?grep 无法捕获所有进程,因为它们没有任何共同点,或者有没有办法让它捕获所有进程?

答案1

gnome-disks杀戮和的一个例子gnome-system-monitor

kill $(pidof gnome-disks gnome-system-monitor)

我确信我们已经以某种形式在这里有了这种东西,因为这里一定有人在几年前告诉过我类似的事情。

你可以使它更漂亮,但更复杂,就像这样:

# Provide a white space separated list of program names to be killed
programs_to_kill="gnome-disks gnome-system-monitor"
kill $(pidof $programs_to_kill)

答案2

如果你真的想使用查找,您可以使用它pkill来获取进程 ID (pid)。pkill greps根据进程名称中的某些模式来终止找到的进程。

您可以使用的语法是:

pkill 'process_name1|other_process|something_else'

你可以使用pgrep(process grep) 检查要终止的进程pkill
语法非常相似:

pgrep -l 'proces_name1|other_process|something_else'

例如,如果我在我的计算机上运行以下命令,我将获得匹配项及其pids 的列表:

$ pgrep -l 'clamd|dockerd|snapd'
1952 snapd
1989 clamd
2085 dockerd
2813 dockerd

警告:如果您确实知道完整的进程名称,请使用直播电报的答案:

kill $(pidof process_name1 other_proces)

这样,当您跑步时ssh-agent就不会因为没有注意听到对方说了什么sshd而成为受害者。pkill sshpgrep -l ssh

答案3

killall name1 && killall name2 && killall name3

答案4

假设您可以按名称选择这三个进程,那么我的解决方案是:

kill `ps awx| grep -E '((ProcessNameA)|(ProcessNameB)|(ProcessNameC))'  |grep -v grep| sed "s/ .*$//"`

相关内容