无法通过ssh通过名称来终止远程命令

问题描述:

我想执行命令以通过名称获取processid并通过ssh从远程终止从另一台计算机列出的所有进程。我正在运行以下命令,无法通过ssh通过名称来终止远程命令

ssh [email protected] "kill -SIGINT `ps -ef | grep <process name> | awk '{print $2}'`" 

但是它在本地检查进程名称而不是检查远程计算机。

你能帮助我解释为什么这个命令无法正常工作吗?

你可以有很多更简单地做到这一点:

ssh [email protected] "pkill -INT <process name>" 

另见pkill-f选项。

双引号在命令调用之前由shell解释。您必须将参数放在单引号中:

ssh [email protected] 'kill -SIGINT `ps -ef | grep <process name> | awk "{print \$2}"`'