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

时间:2014-11-09 08:09:09

标签: bash ssh

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

ssh user@ip "kill -SIGINT `ps -ef | grep <process name> | awk '{print $2}'`"

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

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

2 个答案:

答案 0 :(得分:1)

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

ssh user@ip "pkill -INT <process name>"

另请参阅-f的{​​{1}}选项。

答案 1 :(得分:1)

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

ssh user@ip 'kill -SIGINT `ps -ef | grep <process name> | awk "{print \$2}"`'