Best way to daemonize Java application on Linux

daemon, java, linux

Solution

While the standard answer to this seems to be jsvc, I have been using djb's daemon tools to be a great way to make anything into a daemon.

I have java, python and a few shell scripts all running as daemons, with a simple way to start/stop them and great logging.

I've used to run daemontools itself as root on initctl as originally designed, but after a few months I decided to run it manually, under a normal user, and using svscan-start for nicer logging.

Problem

While I found this question being answered here on SW several times, I didn't find a concluding answer what is the best approach. I'm not looking to use any external wrapper, as I found them launching the java process under a nice level lower then themselves which potentially lowers the performance, so it seems only the shell methods are left. I so far found 3 different shell methods: - start-stop-daemon - RedHat daemon init.d function - nohup on start / disown after start What you people are using, and can recommend as the most reliable method? Thanks.

Original source