无法使用ssh在sh文件上调用带有变量的命令

时间:2019-05-08 05:52:41

标签: linux ssh sh

我在centos 7服务器上有用于通过已使用ID进行杀死过程的脚本:

#!/bin/sh

echo "killing services..."

kill -9 "$(lsof -t -i:3011)"
kill -9 "$(lsof -t -i:4011)"

从服务器调用上面的脚本时,它可以正常工作。

但是我的目标是使用ssh从我的本地计算机上调用此文件,例如:

ssh xxx@xxx.x "sh ~/stopServices.sh"

但是我弄错了这个错误:

killing services...
/home/system/gepick-dev/stopDevServices.sh: line 5: lsof: command not found
/home/system/gepick-dev/stopDevServices.sh: line 5: kill: `': not a pid or valid job spec
/home/system/gepick-dev/stopDevServices.sh: line 6: lsof: command not found
/home/system/gepick-dev/stopDevServices.sh: line 6: kill: `': not a pid or valid job spec

1 个答案:

答案 0 :(得分:1)

您需要在远程服务器上安装lsof。

或者尝试将完整的路径(例如/ usr / sbin / lsof)添加到脚本中,或者如果已安装二进制文件,则在远程服务器中配置PATH