首页 > 其他 > 详细

ssh 远程执行命令 nohup 无效问题

时间:2020-09-13 10:49:03      阅读:265      评论:0      收藏:0      [点我收藏+]

昨夜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 <<EOF
nohup java -jar .... &
EOF

#第二种
在脚本一开始加上source /etc/profile

ssh 远程执行命令 nohup 无效问题

原文:https://www.cnblogs.com/sunpong/p/13660375.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!