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.
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.