我无法直接访问目标主机,需要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"
如何在过程不存在的情况下避免错误?
答案 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"