我在 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
最佳答案
您需要在远程服务器上安装 lsof。
或者尝试将完整路径(如/usr/sbin/lsof)添加到您的脚本中,或者如果已安装二进制文件,则在远程服务器中配置您的 PATH
关于linux - 无法使用ssh在sh文件上调用带有变量的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56034336/