用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" 

以及如何避免过程不存在的错误?

Solutions Collecting From Web of "用ssh杀死远程进程"

使用pkill -f通过匹配它的命令行轻松地pkill -f一个进程。

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

假设你的进程的名字是name ,那么你可以尝试这样的事情:

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