jekins shell发布

jenkins执行shell脚本,找不到环境变量

人盡茶涼 提交于 2020-04-11 12:10:59
问题如摘要描述;问题原因分析参考 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之前需要将原来解压的项目文件夹删除