在与Jenkins成功部署后重新启动Tomcat
如何让Jenkins在成功部署后重新启动Tomcat实例 我已经尝试过使用批处理脚本,但是Tomcat实例在构建完成时被终止。答案在于。A 这是一个设计决策,杀死构建所产生的任何进程,以维护一个干净的环境。不幸的是,这意味着您不能让进程(比如Tomcat)在构建之后运行 通过如下方式启动Jenkins,您可以全局禁用此功能:在与Jenkins成功部署后重新启动Tomcat,tomcat,jenkins,restart,Tomcat,Jenkins,Restart,如何让Jenkins在成功部署后重新启动Tomcat实例 我已经尝试过使用批处理脚本,但是Tomcat实例在构建完成时被终止。答案在于。A 这是一个设计决策,杀死构建所产生的任何进程,以维护一个干净的环境。不幸的是,这意味着您不能让进程(比如Tomcat)在构建之后运行 通过如下方式启动Jenkins,您可以全局禁用此功能: java-Dhudson.util.ProcessTree.disable=true-jar jenkins.war 或者,您可以根据具体情况禁用此功能,方法是使用更改的环
java-Dhudson.util.ProcessTree.disable=true-jar jenkins.war
或者,您可以根据具体情况禁用此功能,方法是使用更改的环境变量启动流程:BUILD\u ID=dontKillMe./catalina重启
然而,有些人报告说,仅仅更改构建ID
是不够的。他们还建议取消设置:JENKINS\u COOKIE
JENKINS\u服务器\u COOKIE
编辑:另一个可能存在的问题是,当您连接到远程shell并在该远程shell会话中启动一个进程时,一旦您(Jenkins)断开连接,该会话将被终止,该会话产生的所有进程也将被终止。为了解决这个问题,您需要将进程与shell会话解除关联 一种方法是:
nohup./catalina重启&
这就是我在通过jenkins部署后重启Tomcat的方式
我有两个服务器DEV和QA,在那里我需要进行部署并重新启动tomcat。我在DEV服务器上安装了Jenkins
tomcat restart.ksh
#/bin/bash
echo“**********************重新启动Tomcat70.***************************”
sh/apps/apache/sss-tomcat70.ksh状态
echo“试图阻止Tomcat”
sh/apps/apache/sss-tomcat70.ksh停止
echo“获取Tomcat状态”
sh/apps/apache/sss-tomcat70.ksh状态
echo“尝试启动Tomcat”
sh/apps/apache/sss-tomcat70.ksh启动
睡眠2
echo“获取Tomcat状态”
sh/apps/apache/sss-tomcat70.ksh状态
在DEV服务器上重新启动Tomcat
因为Jenkins和Tomcat安装在同一台机器上,所以我直接调用脚本
在Jenkins中,转到添加生成后操作
并选择生成后任务
,然后在脚本
文本框中添加以下内容:/apps/apache/tomcat restart.ksh
在QA服务器中重新启动Tomcat
因为Jenkins安装在不同的服务器上,所以我调用脚本通过Secure Shell重新启动Tomcat
在Jenkins中,添加生成后操作
选择生成后任务
,并在脚本文本框中添加以下内容:sshpass-p'myPassword'ssh-ttusername@hostnamesudo sh/apps/apache/tomcat restart.ksh
如果尚未安装,则需要安装sshpass
如果一切顺利,那么你可能会在詹金斯日志中看到类似的内容
Running script : /apps/apache/tomcat-restart.ksh
[workspace] $ /bin/sh -xe /tmp/hudson43653169595828207.sh
+ /apps/apache/tomcat-restart.ksh
*********************Restarting Tomcat70.*********************
Tomcat v7.0 is running as process ID 3552
*********************Trying to stop Tomcat.*********************
Stopping Tomcat v7.0 running as process ID 3552...
*********************Getting Tomcat Status.*********************
Tomcat v7.0 is not running
*********************Trying to Start Tomcat*********************
Starting Tomcat v7.0 server...
*********************Getting Tomcat Status*********************
Tomcat v7.0 is running as process ID 17969
希望这有帮助。您什么时候运行批处理脚本?如果您在“后期构建事件”之后执行此操作,它应该会起作用。我已经使用了Jenkins ProcessTreeKiller,但没有成功。当我用这个参数启动Jenkins时,我注意到派生进程的行为没有什么不同。您是否连接到远程shell?编辑了答案,把远程shell带进了帐户啊!编辑的部分是远程脚本执行的关键步骤。我一直在挠头思考,为什么tomcat在关机正常工作时不能启动。非常感谢你。