后台程序在linux系统中执行shell文件-cp命令僵死

后台程序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

虽然我这解决方式比较低级,有点回避技术问题,但是能解决问题,如果有读者遇到相应问题,请回复我,非常感谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值