在Jenkins的使用中,遇到过的一个场景是:在web代码更改之后,能自动的部署到测试服务器,我们写了run.sh脚本来重启服务,在使用Jenkins的任务自动跑这个脚本后发现,服务没有起来。开始以为是run.sh脚本的问题,但是直接执行是没有问题的;之后一直查运行环境差异,发现也不是这个原因;到后来才怀疑到Jenkins任务结束时候自动关掉了所有的子进程。通过以下shell脚本片段解决了问题:

1.第一种方案: #临时改变BUILD_ID值,使得Jenkins不会找到并结束掉run.sh启动的后台进程
OLD_BUILD_ID=$BUILD_ID
echo $OLD_BUILD_ID
BUILD_ID=dontKillMe
./run.sh restart
#改回原来的BUILD_ID值
BUILD_ID=$OLD_BUILD_ID
echo $BUILD_ID

问题的根本在于是Jenkins使用processTreeKiller杀掉了所有子进程,而且这是Jenkins的默认行为。其实回头来看这个问题,就发现Jenkins的做法非常合理。当一次build异常结束,或被人终止时,必然需要结束所有这次build启动的子进程。下面的link提供了更多细节,以及解决方法。https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller

2.第二种方案:

使用jenkins的批处理或者ant 启动tomcat失败。查了一下原因说是 jenkins在脚本执行结束后,就认为任务结束了,但是脚本启动的相关子程序仍然在运行。由于jenkins认为任务已经结束了,就结束了该构建相关的子进程。

解决办法:增加一个环境变量。

BUILD_ID=pleaseDontKillMe and it works like a charm。

可以添加在执行任务的节点设置中添加该变量。

解决详细步骤:

前置说明:我是通过slave节点来启动tomcat 的,所以再slave节点配置上述环境变量。

转载于:https://my.oschina.net/vshcxl/blog/704028

使用Jenkins的任务自动跑脚本后发现,服务没有起来相关推荐

  1. python脚本自动化赚钱系统_自从用python写了个自动弹幕脚本后,各大主播都来找我,净赚十万!...

    Python Python开发 Python语言 自从用python写了个自动弹幕脚本后,各大主播都来找我,净赚十万! 大家好,今天又给大家带来了Python爬虫的分享,今天我们继续上次的问题,继续来 ...

  2. 重启服务器后磁盘显示空余变大,(已解决)开机后发现服务中Superfetch服务项会导致磁盘利用率在85%以上,重启后依旧...

    在开机后发现磁盘利用率90%~100%之间(家庭组已经停用),后来发现服务项中Superfetch服务项在停用后,磁盘利用率恢复正常,请问该项目应该如何处理,如果禁用后对系统有什么影响? 使用的系统为 ...

  3. 自从用python写了个自动弹幕脚本后,各大主播来找我,净赚十万!赶紧收藏!!

    起因 写完上次的代码,我冒出有一个很有趣的想法,就是,我们可以使用selenium来完成虎牙自动化登录,并且自动给主播发送弹幕功能的程序.既然有了想法,我们就开始实现,首先我们要先确定进入一个直播间, ...

  4. python弹幕脚本_自从用python写了个自动弹幕脚本后,各大主播都来找我,净赚十万!...

    大家好,今天又给大家带来了Python爬虫的分享,今天我们继续上次的问题,继续来研究一下虎牙平台的爬虫. 起因 写完上次的代码,我冒出有一个很有趣的想法,就是,我们可以使用selenium来完成虎牙自 ...

  5. 自从用python写了个自动弹幕脚本后,各大主播都来找我,净赚十万!

    大家好,今天又给大家带来了Python爬虫的分享,今天我们继续上次的问题,继续来研究一下虎牙平台的爬虫. 起因 写完上次的代码,我冒出有一个很有趣的想法,就是,我们可以使用selenium来完成虎牙自 ...

  6. 【Flutter】从安卓与iOS包体优化到一键自动打包脚本的一条龙服务

    系统信息 System version: MacOS 12 Flutter version: 1.22.5 Dart version: 2.10.4 Android Studio version: 4 ...

  7. jmeter html测试脚本,Jenkins如何实现自动运行jmeter脚本并出具报告

    背景:实现jmeter每30分钟执行一次,运行系统中所有接口或者性能脚本 或者后续更可以由系统部署来触发建构执行 1.配置jmeter测试环境,注意修改Jmeter的bin目录下jmeter.prop ...

  8. 亮度 脚本 android,光遇自动跑图脚本

    光遇自动跑图脚本可以释放玩家的手并自动结束游戏的应用程序.无需root用户即可直接使用自动地图软件.它支持多种手机型号,并直接提供自动地图协助. 赶紧来试试吧!非常的好操作哟! 光遇自动跑图脚本介绍: ...

  9. 【AirTest实例】1.使用脚本自动跑通游戏引导

    本人测试岗位,在项目不是很忙的时候,还是想写一个可以自动跑的游戏脚本.挂着游戏能够代替一些手动的测试,并且闲时晚上下班的时候挂着手机,第二天再来看报告日志,算是物尽其用了.前期脚本基础功能是要在编辑器 ...

最新文章

  1. 增强迪基-福勒检验(ADF检验、augmented Dickey-Fuller test)是什么?解决了什么问题?
  2. android de,什么是Android Pre-Dexing,以及如何提高性能?
  3. SQL Server 备份与恢复之四:备份类型和选项
  4. 远程管理MAC OS
  5. HR面 - 十大经典提问
  6. 现代软件工程 作业 文本文件中英语单词的频率
  7. 【知了堂学习笔记】数据库连接池简介,以及Eclipse中C3p0连接池的简单运用
  8. java protobuffer 网络_C#与Java通过protobuf进行网络通信过程中遇到的问题
  9. Bailian2871 Bailian3682 整数奇偶排序【排序】
  10. C++基础::mutable 关键字
  11. 数据库实验7 数据库视图的定义与使用
  12. C# 编译或者解释?
  13. LINUX查看显卡信息
  14. 三、spring中高级装配(1)
  15. 霍尔在光伏发电系统中的应用与产品选型
  16. SUBMAIL是如何解决短信安全的
  17. 指数型组织:未来组织发展的必然趋势
  18. 点播系统加服务器加投影加音响,打造真实家庭影院 投影机+音响巧搭配
  19. 计算机组成原理试题和答案,计算机组成原理试题(含答案)
  20. arcgis runtime for android 100.13.0 入门系列,三、加载shp,kml,tpk文件,图层定位,toolkit工具

热门文章

  1. asp.net 通过IHttpModule开发接口
  2. [msi]安装包无法安装,提示没有找到源文件xxx.cab
  3. 用FileZilla搭建的Ftp其他电脑无法访问的问题
  4. C++基础知识(一) 键盘输入
  5. 开课吧:继承是什么?继承的基础有什么?
  6. CakePHP 3.7.6 发布,PHP 快速开发框架
  7. Python学习笔记-异常处理
  8. [译]Flask教程--将表单数据发送到模板
  9. shell中$(( )) 与 $( ) 还有${ }的区别
  10. 有效利用ASP.NET用户控件的事件委托