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?


Solution 1:

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

Solution 2:

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.