后台程序golang,程序实现ssh连接到服务器执行shell文件,shell脚本内容片断如下:
cd /home/test/bin/;./stop.sh
if [ $? -ne 0 ]; then
echo "[ERROR] 执行:停止服务失败,请检查:/home/test/bin/stop.sh"
exit 1
fi
由于【/home/test/bin】目录根本不存在,于是卡死的位置在【cd /home/test/bin/;./stop.sh】这一步,就无法往下执行。
我尝试通过ssh终端工具连接到服务器上,进行手动执行shell,发现shell脚本是可以正常往下走。反复程序测试发现卡死只会在程序调用shell出错,之前python ansible去远程执行shell文件也是遇到相应问题,网上搜索和咨询一些大牛都是无解,反正我就只能针对该问题以后做如下处理:
if [ -d /home/test/bin ]; then # 每次执行cd前,都要校验一下,确保万一
cd /home/test/bin/;./stop.sh
if [ $? -ne 0 ]; then
echo "[ERROR] 执行:停止服务失败,请检查:/home/test/bin/stop.sh"
exit 1
fi
fi
虽然我这解决方式比较低级,有点回避技术问题,但是能解决问题,如果有读者遇到相应问题,请回复我,非常感谢。