Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Process leaked file descriptors error on JENKINS

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?

like image 409
user2181104 Avatar asked Jun 10 '13 12:06

user2181104


3 Answers

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

like image 114
lu_ko Avatar answered Nov 14 '22 01:11

lu_ko


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.

like image 11
NdK Avatar answered Nov 14 '22 01:11

NdK


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

like image 6
Arx Cruz Avatar answered Nov 14 '22 02:11

Arx Cruz