Jenkins构建脚本中启动tomcat关键
一、启动tomcat
来源:
http://blog.csdn.net/prisonbreak_/article/details/50749576(给出方法)
http://veryyoung.me/blog/2016/04/19/jenkins-backgroud-process.html(给出方法+解释原因)
在网上查了资料,需要在执行脚本之前加入:export BUILD_ID=XXXXXX
XXXXX可以随便写的什么
具体原因还不知道,以后研究了,再来补充。
这里我就来补充一下咯(又是我copy的):
今天在配置 Jenkins Job 的时候,after mvn package 用命令行 nohup java -jar project-1.0-SNAPSHOT.jar > server.log 2>&1 & 起一个 spring-boot 项目,死活不生效。
ssh 到服务器上查不到对应的进程,而直接在服务器上执行是完全 OK 的。
Google 一番后得知,这是 Jenkins 的特性。
To reliably kill processes spawned by a job during a build, Jenkins contains a bit of native code to list up such processes and kill them. This is tested on several platforms and architectures, but if you find a show-stopper problem because of this, you can disable this feature by setting a Java property named “hudson.util.ProcessTree.disable” to the value “true”. This can be done as a parameter to the “java” binary when starting Jenkins:
`java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war`
The ProcessTreeKiller takes advantage of the fact that by default a new process gets a copy of the environment variables of its spawning/creating process.It sets a specific environment variable in the process executing the build job. Later, when the user requests to stop the build job’s process it gets a list of all processes running on the computer and their environment variables, and looks for the environment variable that it initially set for the build job’s process.
具体链接请点击 ProcessTreeKiller。
大概意思是 Jenkins 是在启动 Job 的时候会给子进程设置环境变量,在结束 Job 的时候会检查进程的环境变量,如果包含 Jenkins 生成的,kill 掉。
解决方案:
启动 Jenkins 的时候加上 -Dhudson.util.ProcessTree.disable=true,也就是 java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war
在后台进程前加上 BUILD_ID=dontKillMe, 也就是 BUILD_ID=dontKillMe nohup java -jar project-1.0-SNAPSHOT.jar > server.log 2>&1 &
二、maven构建的时候忽略Javadoc
maven构建的时候,忽略Javadoc可以加快速度
mvn clean package -D maven.javadoc.skip=true
Jenkins构建脚本中启动tomcat关键的更多相关文章
- 为什么eclipse中启动tomcat后,浏览器中出现404?
问题描述: tomcat压缩包加压后,启动lib文件夹下面的startup.bat,在浏览器中输入http://localhost:8080/后出现熟悉的界面. 但是在eclipse中,jsp可以正常 ...
- eclipse中启动tomcat,localhost:8080无法访问
问题 eclipse中启动tomcat,项目可以正常运行,但是localhost:8080无法访问. 关闭eclipse中的Tomact,直接从tomcat/bin 下的startup.bat启动,l ...
- 在eclipse中启动Tomcat报端口被占用的错误
安装配置好Tomcat之后,在浏览器中输入localhost,能正取打开页面.然后在eclipse中建立项目,创建Servlet之后,启动Tomcat,报端口被占用的错误.如图: 原因:原来已经启动了 ...
- Myeclipse中启动tomcat 异常
信息: Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate ...
- centos7中启动tomcat提示bash: tomcat8.0.39/bin/startup.sh: 权限不够
问题描述: centos7中启动tomcat提示bash: tomcat8.0.39/bin/startup.sh: 权限不够 解决方案:先进入bin目录 [root@localhost/]# cd ...
- eclipse中启动tomcat后, 无法访问localhost:8080
问题: 今天老师讲了Servlet路径问题, 做了个测试在eclipse中启动tomcat后,在浏览器地址栏输入 http://localhost8080无法访问, 提示404错误, 正常情况是可以访 ...
- jenkin构建项目执行脚本后,脚本中启动的进程也随之关闭的解决办法
问题描述: 之前用jenkins构建项目(maven项目)后都是通过ssh先将war文件推送到远程服务器,然后执行远程的脚本(更新项目,重启tomcat),一直没有出现问题,今天使用jenkins构建 ...
- 约定Jenkins构建脚本
对于Jenkins的使用,我感觉只用到其中一小部分功能,但也就是这一小部分功能,也推动了整个CI/CD的过程,Jenkins的使用方式有很多中,可能我用到的只是其中一种,但是已经满足我的需求,便不再贪 ...
- 在eclipse中启动tomcat加载不了项目的解决方法
一.在server视图右键选择Add and Remove时,如果想要部署的项目不在左侧的待选列表中,或是弹出警告There are no resources that can be added or ...
随机推荐
- nginx+php简单配置环境
首先我的需求是: 1. 需要有PHP的服务.web目录存放在各处. 2. 需要有多个端口. 步骤: 1. 安装nginx php,我的系统是mac 所以安装使用brew, 一键完成... 2. 开启p ...
- MMU——存储器管理单元
更多文档参见:http://pan.baidu.com/s/1qW0hjwo MMU,全称Memory Manage Unit, 中文名——存储器管理单元. 许多年以前,当人们还在使用DOS或是更古老 ...
- es6类声明,class总结
1.class的基本写法 class a{ // 传入参数或者写入固定参数 constructor(a,b){ this.a=a this.b=b } // 可直接调用的计算后的参数 get c(){ ...
- js各种验证总结
1.邮箱验证 function isEmail(str){ var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1 ...
- Swift,初始化
1.class中的值是没办法不赋值,不然会报错,那么就有个init的方法初始化(这个方法使得实例时必须加上参数) class test{ var a:String var b:Int init(a:S ...
- javascript快速入门24--XML基础
XML简介 XML代表Extensible Markup Language(eXtensible Markup Language的缩写,意为可扩展的标记语言).XML 被设计用来传输和存储数据.XML ...
- Kubernetes用户指南(四)--应用检查和调试
一.调试 当你的应用开始运行,那么DEBUG是不可避免的问题. 早些时候,我们在描述的是如何通过kubectl get pods来获得Pod的简单状态信息. 但是现在,这里有更多的方式来获得关于你的应 ...
- SVN回到历史版本--转载
svn回到历史的某个版本 在代码的编写过程中,难免有些错误需要修改,或者想从以前的文件进行代码修改,这样就涉及到版本的追踪,如果你以前提交时日志写的非常清楚,那版本追踪回滚起来就事半功倍.得心应手.下 ...
- Java ActiveMQ队列模式案例
创建Eclipse项目并运行 创建java project:ActiveMQ-5.14,新建lib文件夹 打开apache-activemq-5.14.0-bin\apache-activemq-5. ...
- MvcPager帮助文档 - MvcAjaxOptions 类
表示用于 MvcPager 在 Ajax 分页模式下的选项设置,该类继承自 AjaxOptions. 公共属性: 名称 说明 默认值 AllowCache 获取或设置一个值,该值指示是否在Ajax分页 ...