jenkins执行shell脚本,找不到环境变量
2017-10-19 00:00
686 查看
摘要: jenkins编译并发布项目成功后,需要重启一些服务,如果重启过程中使用shell脚本,而脚本中又用到了环境变量,此时可能出现加载环境变量失败的问题
问题如摘要描述;问题原因分析参考 jenkins找不到环境变量
解决方案:在需要执行的脚本前加上 /bin/bash -l 使当前登陆用户以登陆模式执行脚本文件
案例:/bin/bash -l /opt/tomcat/tomcat1601/restart1601.sh
restart1601.sh中的一个坑
启动tomcat需要先找到tomcat pid 杀掉进程再启动,刚开始写了一个脚本在本机执行可以,但是在jenkins中执行就直接失败了 原因是杀进程的时候把grep自己也杀掉了,然后ssh断开连接
可用的脚本如下
restart1601.sh
补充问题:
当发布后 拷贝新的war包到tomcat/webapps下 重启tomcat之前需要将原来解压的项目文件夹删除,否则tomcat启动时不会重新解压新的war包
问题如摘要描述;问题原因分析参考 jenkins找不到环境变量
解决方案:在需要执行的脚本前加上 /bin/bash -l 使当前登陆用户以登陆模式执行脚本文件
案例:/bin/bash -l /opt/tomcat/tomcat1601/restart1601.sh
restart1601.sh中的一个坑
启动tomcat需要先找到tomcat pid 杀掉进程再启动,刚开始写了一个脚本在本机执行可以,但是在jenkins中执行就直接失败了 原因是杀进程的时候把grep自己也杀掉了,然后ssh断开连接
可用的脚本如下
restart1601.sh
#!/bin/bash #echo "stop tomcat1601..." rm -rf /opt/tomcat/tomcat1601/webapps/sinterface ps -ef|grep tomcat1601|grep "java"|awk '{print "kill -9 " $2}' |sh #echo "kill tomcat1601" /bin/bash /opt/tomcat/tomcat1601/bin/startup.sh #echo "start up tomcat1601..."
补充问题:
当发布后 拷贝新的war包到tomcat/webapps下 重启tomcat之前需要将原来解压的项目文件夹删除,否则tomcat启动时不会重新解压新的war包
相关文章推荐
- php 执行 shell 脚本环境变量设置
- sudo执行脚本找不到环境变量
- Linux(7) 常用命令扩展 改变用户环境变量 (可以实现登陆就执行shell脚本)
- 控制shell脚本执行频率、解决shell脚本不能修改环境变量等问题
- sudo执行脚本找不到环境变量解决方法
- sudo执行脚本找不到环境变量
- jenkins 执行sh脚本 没携带环境变量,报错command not founds问题
- sudo执行脚本找不到环境变量和命令
- crontab中使用环境变量的方法(手动执行shell脚本可以,在定时任务中不行)
- jenkins执行shell读不到环境变量问题
- [ 转载 ] ssh连接远程主机执行脚本的环境变量问题
- jenkins 以root用户执行Shell脚本并不需要输入密码
- shell脚本中的环境变量
- [精华] 利用SHELL脚本修改当前环境变量
- shell脚本中赋值给变量中有空格, 导致命令执行失败
- shell脚本介绍,shell脚本结构和执行方式,date命令的用法,shell脚本中的变量简介
- jenkins结合shell实现登录远程主机执行shell脚本
- shell脚本介绍shell脚本结构和执行date命令用法shell脚本中的变量
- shell脚本设置环境变量不生效