在一行中杀死 'ps aux' 输出

Kill 'ps aux' output in one line

我每天必须多次做同样的事情:

ps aux

寻找进程 运行 ssh 到我的一台服务器...

kill -9 <pid>

我想看看是否可以将进程别名化为一行。 ps aux 的输出通常是这样的:

user   6871   0.0  0.0  4351260      8   ??  Ss    3:28PM   0:05.95 ssh -Nf -L 18881:my-server:18881
user   3018   0.0  0.0  4334292     52   ??  S    12:08PM   0:00.15 /usr/bin/ssh-agent -l
user   9687   0.0  0.0  4294392    928 s002  S+   10:48AM   0:00.00 grep ssh

我一直想杀掉里面有my-server的进程。

有谁知道我该怎么做?

一个简单的解决方案是使用 pkill:

sudo pkill my-server

for pid in $(ps aux | grep "[m]y-server" | awk '{print }'); do kill -9 $pid; done

ps辅助 | grep "[m]y-server" | awk '{print $2}' - 这部分为您提供包含 "my-server" 的 pids 进程列表。这个脚本将通过这个列表并杀死所有这些进程。

我使用 pgrep -- 如果您确定要终止所有匹配的进程:

$ kill -9 `pgrep my-server`