在一行中杀死“ ps aux”输出

时间:2018-10-24 17:53:19

标签: linux macos ssh command-line ps

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

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的进程。

有人知道我该怎么做吗?

3 个答案:

答案 0 :(得分:1)

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

ps aux | grep [m] y-server | awk'{print $ 2}'-此部分为您提供了包含“ my-server”的pid进程列表。该脚本将遍历该列表并杀死所有这些进程。

答案 1 :(得分:0)

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

sudo pkill my-server

答案 2 :(得分:0)

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

$ kill -9 `pgrep my-server`