首页 > 其他 > 详细

jenkins 执行远程脚本问题

时间:2019-07-09 17:02:02      阅读:124      评论:0      收藏:0      [点我收藏+]

ssh在远程连接服务器执行命令的时候,经常会遇到环境变量的问题,如下:

/data/resin-pro-4.0.49/bin/resin.sh: line 44: exec: java: not found

如果出现上面的提示,则说明环境变量配置有问题。
先来说解决办法

解决

  • 目标服务器上/etc/profile文件,拷贝文件中的环境变量,例如JAVA_HOME, PATH等等
  • 将环境变量拷贝至~/.bashrc文件保存

source ~/.bashrc

问题解决!

原因及拓展

这里就要说明bash有两种方式interactive + login shell模式和non-interactive + non-login shell模式
在服务器上执行命令,走的是interactive + login shell模式,而通过远程登录执行命令,走的是non-interactive + non-login shell模式。
这两种模式对于环境变量的读取是有区别的。

  • interactive + login shell模式

Shell首先会加载/etc/profile文件,然后再尝试依次去加载下列三个配置文件之一,一旦找到其中一个便不再接着寻找:
~/.bash_profile
~/.bash_login
~/.profile

  • non-interactive + non-login shell模式
    它不会去执行/etc/profile文件,而会去用户的HOME目录检查.bashrc并加载

所以当远程执行命令时,我们只需要让~/.bashrc文件中的环境变量与/etc/profile中的环境变量一致即可!




jenkins 执行远程脚本问题

原文:https://www.cnblogs.com/wangzhanhua/p/11157969.html

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