我有一个詹金斯综合项目。
在第一阶段,我启动数据库并构建核心部分。
用于启动Mongodb的示例Shell命令:
/root/software/mongodb-linux-x86_64-2.6.3/bin/mongod&
Run Code Online (Sandbox Code Playgroud)
在第二阶段,我有各种各样的工作来建立一些客户。
在完成第一阶段的工作之后,启动了服务器并构建了核心部分。我看到日志-
Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build for more information
2016-08-26T20:23:00.815+0530 [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
2016-08-26T20:23:00.833+0530 [signalProcessingThread] now exiting
2016-08-26T20:23:00.879+0530 [signalProcessingThread] dbexit:
2016-08-26T20:23:00.903+0530 [signalProcessingThread] shutdown: going to close listening sockets...
2016-08-26T20:23:00.903+0530 [signalProcessingThread] closing listening socket: 7
2016-08-26T20:23:00.903+0530 [signalProcessingThread] closing listening socket: 8
2016-08-26T20:23:00.903+0530 [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)
这将停止所有数据库,并且第二阶段作业的构建将失败。
如何告诉詹金斯下班后不要杀死进程?
Jenkins使用一种特殊的机制来清理子进程。它寻找与内部BUILD_ID版本号匹配的过程。您可以将其设置为不同的值,詹金斯将跳过杀死该过程。
从文档:
https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller
BUILD_ID=dontKillMe /your/mongodb/process
Run Code Online (Sandbox Code Playgroud)
或用于管道:
JENKINS_NODE_COOKIE=dontKillMe /your/mongodb/process
Run Code Online (Sandbox Code Playgroud)
根据@jayan 分享的文档,
您可以通过设置名为value的 Java 属性来禁用构建期间由作业生成的终止进程。hudson.util.ProcessTree.disabletrue
这可以在启动 Jenkins 时作为“java”二进制文件的参数来完成:
java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8440 次 |
| 最近记录: |