I’ve been working on a Java project lately and one of the things I needed to do with it was run the (cross-platform) server application as a Service on Windows and as a Daemon on *nix. I looked around to find a stable and cross-platform solution to it and finally came across the Java Service Wrapper. JSM made my day!
JSM is quite flexible in terms of configuration and also includes a log system (quite handy for debugging). The application actually runs as part of a JVM instance. Now, post deployment, there hasn’t been much overhead in terms of server resources and the application runs unmanaged.
And yes, JSM is free and open source!