我们是spring boot项目,在部署过程中,通过jenkins的ssh插件实现远程部署,在ssh的配置中,通过java -jar启动不了程序,开始认为是jenkins对进程杀死的原因,试着对jenkins启动加上-Dhudson.util.ProcessTree.disable=true,以及对脚本加上BUILD_ID=DONTKILLME,发现还是没有解决问题,在另一台机器上实验一下远程启动tomcat,结果出现了Neither the JAVA_HOME nor the JRE_HOME environment variable is defined这个问题,查询发现需要 /etc/profile 中导入的环境变量,需要在/root/.bashrc中加入相同环境变量。怀疑我没有启动成功的原因可能是这个,为何?应为java -jar也是依赖java的环境,没有在/root/.bashrc中加入环境变量导致的问题,加入java的环境变量后,然后source /root/.bashrc了一下,然后构建了一下任务,发现问题解决了。查询发现/etc/profile与/root/.bashrc存在区别,profile是在用户登陆的时候进行环境变量的初始化,而/root/.bashrc是在开始shell脚本的时候时候进行初始化。对于jenkins ssh的远程执行部分,可能不存在用户登陆,没有profile来初始化,用shell开启,通过/root/.bashrc来初始化,导致没有环境变量的问题。