= JavaServiceWrapper = http://wrapper.tanukisoftware.com/doc/english/product-overview.html The Java Service Wrapper enables a Java Application to be run as a Windows Service or UNIX Daemon. It also monitors the health of your Application and JVM. Community Edition http://wrapper.tanukisoftware.com/download/3.5.25/wrapper-linux-x86-32-3.5.25.tar.gz = Integrate with other apps = * http://wrapper.tanukisoftware.com/doc/english/integrate.html * http://wrapper.tanukisoftware.com/doc/english/integrate-simple-nix.html == Sample Maven App to integrate == {{{ . |-- pom.xml |-- src | `-- main | |-- java | | `-- org | | `-- allowed | | `-- bitarus | | `-- JavaServiceApp.java | `-- resources | `-- simplelogger.properties `-- target |-- archive-tmp |-- classes | |-- org | | `-- allowed | | `-- bitarus | | `-- JavaServiceApp.class | `-- simplelogger.properties |-- javaServiceApp-0.0.1-jar-with-dependencies.jar |-- javaServiceApp-0.0.1.jar |-- maven-archiver | `-- pom.properties `-- surefire 15 directories, 8 files }}} pom.xml {{{#!highlight xml 4.0.0 org.allowed.bitarus javaServiceApp jar 0.0.1 javaServiceApp http://maven.apache.org maven-assembly-plugin 2.4 jar-with-dependencies org.allowed.bitarus.JavaServiceApp make-assembly package single org.slf4j slf4j-api 1.7.7 org.slf4j slf4j-simple 1.7.7 }}} src/main/resources/simplelogger.properties {{{ org.slf4j.simpleLogger.logFile=/tmp/JavaServiceApp.log org.slf4j.simpleLogger.defaultLogLevel=debug org.slf4j.simpleLogger.showDateTime=true org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z }}} src/main/java/org/allowed/bitarus/JavaServiceApp.java {{{#!highlight java package org.allowed.bitarus; public class JavaServiceApp{ public static void main(String [] args){ org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(JavaServiceApp.class); while(true){ try{ log.debug("Test JavaServiceApp"); Thread.sleep(10000); } catch(Exception ex){ log.error( ex.getMessage() ); } } } } }}} == Integration with JavaServiceWrapper == * cp target/javaServiceApp-0.0.1-jar-with-dependencies.jar /tmp/jsa/ * cp /tmp/wrapper-linux-x86-32-3.5.25/lib/wrapper.jar /tmp/jsa * cp /tmp/wrapper-linux-x86-32-3.5.25/src/bin/sh.script.in /etc/init.d/jsa * chmod 755 /etc/init.d/jsa * cp /tmp/wrapper-linux-x86-32-3.5.25/bin/wrapper /usr/bin/wrapper * cp /tmp/wrapper-linux-x86-32-3.5.25/lib/libwrapper.so /usr/lib/libwrapper.so /etc/init.d/jsa , change APP and WRAPPER {{{ # Application APP_NAME="JavaServiceApp" APP_LONG_NAME="Java Service App" # Wrapper WRAPPER_CMD="/usr/bin/wrapper" WRAPPER_CONF="/tmp/jsa/wrapper.conf" }}} /tmp/jsa/wrapper.conf {{{ #encoding=UTF-8 wrapper.lang.folder=/tmp/jsa/lang wrapper.java.command=/opt/java/bin/java set.JAVA_HOME=/opt/java wrapper.java.command=%JAVA_HOME%/bin/java wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp wrapper.java.classpath.1=/tmp/jsa/wrapper.jar wrapper.java.classpath.2=/tmp/jsa/javaServiceApp-0.0.1-jar-with-dependencies.jar wrapper.java.library.path.1=/usr/lib wrapper.java.additional.auto_bits=TRUE wrapper.java.additional.1= wrapper.app.parameter.1=org.allowed.bitarus.JavaServiceApp wrapper.console.format=PM wrapper.console.loglevel=INFO wrapper.logfile=/tmp/jsa/wrapper.log wrapper.logfile.format=LPTM wrapper.logfile.loglevel=INFO wrapper.logfile.maxsize=0 wrapper.logfile.maxfiles=0 wrapper.syslog.loglevel=NONE wrapper.ignore_sequence_gaps=TRUE wrapper.pidfile.strict=TRUE wrapper.console.title=@app.long.name@ wrapper.check.deadlock=TRUE wrapper.check.deadlock.interval=60 wrapper.check.deadlock.action=RESTART wrapper.check.deadlock.output=FULL wrapper.filter.trigger.1000=[Loaded java.lang.OutOfMemoryError wrapper.filter.action.1000=NONE wrapper.filter.trigger.1001=java.lang.OutOfMemoryError wrapper.filter.action.1001=RESTART wrapper.filter.message.1001=The JVM has run out of memory. wrapper.event.jvm_restart.email.body=The JVM was restarted.\n\nPlease check on its status.\n wrapper.name=@app.name@ wrapper.displayname=@app.long.name@ wrapper.description=@app.description@ wrapper.ntservice.dependency.1= wrapper.ntservice.starttype=AUTO_START wrapper.ntservice.interactive=false }}} Start service, /etc/init.d/jsa start Stop service, /etc/init.d/jsa stop