Tool for creating a Java daemon service on Linux

Lehane picture Lehane · Aug 21, 2009 · Viewed 17.7k times · Source

What is the best way to create a java application that can be run using ‘service’ on Linux? I was going to use the JSW available here, but cannot use the licence on that (licence is either GPL or it costs money as far as I can tell). I’d need an apache style licence.

I’m using maven to build, so it would be great if it was possible to create the service using a maven plugin, but any other suggestions would be great.

I've seen Apache Commons Daemon, is there a maven plugin for this? Documentation seems sparse, so a working example of this would be good...

Thanks

Answer

robertc picture robertc · Aug 21, 2009

Services on Linux are just shell scripts which start background processes. Have a look in /etc/init.d - you can open the files in a text editor. All you need is a bash script which responds to the parameters start and stop in an appropriate way (eg. start will start your service and record the process ID in a known location, stop will kill the process with the PID from the file you created), and then place it in /etc/init.d.

Have a look at Init Scripts and An introduction to services, runlevels, and rc.d scripts