ssh远程执行linux命令nohup,关于linux:ssh-远程执行命令-nohup-无效问题

昨夜1:00多筹备睡觉了,忽然一哥们征询了我一个问题。

他A机器上近程执行B机器(ssh user@ip “command”)上的脚本,B上的服务并没有起来。

看了下截图,脚本的确是执行了的,而且他说B本机上执行时能够的。

于是看了下脚本,其中有一段如下

if [ xxxx ];then

xxxx

else

nohup java -jar ../xxx.jar >/dev/null 2>&1 &

echo “xxxx”

fi

感觉可能是相对路径问题,于是让他改为绝对路径,试了后也不行。

而后让他试了下,B上用sh -x执行脚本 ,发现也没啥故障。

再让他试了下, A上近程执行脚本,发现nohup那条命令没执行,间接就执行了nohup前面的echo命令,A上执行形式如下

ssh user@IP “sh -x 脚本”

而后尝试在A上间接近程执行nohup命令也不行,如下:

ssh user@ip “nohup java -jar ../xxx.jar >/dev/null 2>&1 &”

查了些材料发现 ssh近程的时候执行nohup命令,是无奈获取被近程机器的环境变量的,所以java命令执行不进去,于是用如下两种形式解决。

第一种

ssh user@ip <

nohup java -jar …. &

EOF

第二种

在脚本一开始加上source /etc/profile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值