通过ssh杀死远程进程

时间:2014-02-22 05:09:58

标签: linux shell ssh

我无法直接访问目标主机,需要ssh作为代理。

如何从本地使用ssh杀死进程?我试试这个:

ssh root@$center "ssh root@$ip \"ps -ef|grep -v grep|grep $target_dir/$main|awk '{print \$2}'|xargs kill\""

它出错:

kill: can't find process "root"

如何在过程不存在的情况下避免错误?

2 个答案:

答案 0 :(得分:17)

假设您的流程名称为name,那么您可以尝试以下内容:

ssh hostname "pid=\$(ps aux | grep 'name' | awk '{print \$2}' | head -1); echo \$pid |xargs kill"

答案 1 :(得分:4)

使用pkill -f通过匹配其命令行轻松终止进程。

ssh root@$center ssh root@$ip pkill -f "$target_dir/$main"