我想执行命令以按名称获取processid,并通过ssh远程终止从其他计算机列出的所有进程。我正在运行以下命令,
ssh user@ip "kill -SIGINT `ps -ef | grep <process name> | awk '{print $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}"`'