I am getting this error when I configured a job to do stop and start of tomcat server:
Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build for more information
When i googled it, i got a recommended solution as set BUILD_ID=dontKillMe
Is this the exact solution?
If yes, where do I need to set BUILD_ID? Inside ant/post build script?
Can anyone please clarify this?
Yes, creating fake BUILD_ID
for process tells Jenkins to ignore this process during detection spawned processes, so this process will be not killed after finishing job.
Usage: Enter BUILD_ID=dontKillMe
before your command, for example into Execute shell
build step:
BUILD_ID=dontKillMe nohup ./yourStartScript.sh &
Note: See also nohup
By default, Jenkins will kill all the spawned process at the completion of build.
To override this, you need to create environment variable BUILD_ID
.
Go to Jenkins -> Manage Jenkins -> Configure System.
Now under Global properties section, under Environment variables, click on ADD button to add new Environment variable.
Give name=BUILD_ID
and value=allow_to_run_as_daemon start_my_service
Click on save button. And you are done.
Now the spawn process will continue to execute even after the build got completed.
Add this line as a JAVA_ARGS argument when you start your jenkins server (I put mine on /etc/default/jenkins in my Ubuntu box)
-Dhudson.util.ProcessTree.disable=true
And you're done
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With