首页 > 解决方案 > 不要杀死由 ps - linux 创建的已创建进程

问题描述

请给一些建议。

我正在尝试远程杀死进程(ssh 到主机名),找到一些进程并杀死它们。但我有一个条件:Do not kill java process, sshd and gnome

这是示例(我只是做echoexcept kill):

#/bin/sh -x.
HOSTFILE=$1
vars=`cat $HOSTFILE`
for i in $vars; do
 ssh  "$i" /bin/bash <<'EOF'
  echo $(hostname)
  ps aux | grep -e '^sys_ctl'| grep -v "java" | grep -v "sshd" | \
  grep -v "gnome" | awk '{print $2$11}'|  for i in `xargs echo`; do  echo $i; done;
EOF
done

结果是:

host1:
21707/bin/bash
21717ps
21718grep
21722awk
21723/bin/bash
21724xargs
host2:
15241/bin/bash
15251ps
15252grep
15256awk
15257/bin/bash
15258xargs
89740-bash
98467sleep
98469sleep
98471sleep
98472sleep
98474sleep
98475sleep

我想杀死(output),只有 sleep进程,而不是 grep,awk,bash,xargs,ps 你能提​​出一些优雅的建议吗?

标签: linuxbash

解决方案


为什么不只是:kill $(pgrep -f sleep) 或:pkill -f sleep


推荐阅读