Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Java class:</p> <pre><code>package example; import java.util.Date; import java.util.Timer; import java.util.TimerTask; import org.apache.commons.daemon.*; class EchoTask extends TimerTask { @Override public void run() { System.out.println(new Date() + " running ..."); } } public class Main implements Daemon { private static Timer timer = null; public static void main(String[] args) { timer = new Timer(); timer.schedule(new EchoTask(), 0, 1000); } @Override public void init(DaemonContext dc) throws DaemonInitException, Exception { System.out.println("initializing ..."); } @Override public void start() throws Exception { System.out.println("starting ..."); main(null); } @Override public void stop() throws Exception { System.out.println("stopping ..."); if (timer != null) { timer.cancel(); } } @Override public void destroy() { System.out.println("done."); } } </code></pre> <p>Shell start/stop script:</p> <pre><code>#!/bin/sh # Setup variables EXEC=/usr/bin/jsvc JAVA_HOME=/usr/lib/jvm/java-6-sun CLASS_PATH="/usr/share/java/commons-daemon.jar":"/path/to/your.jar" CLASS=example.Main USER=foo PID=/tmp/example.pid LOG_OUT=/tmp/example.out LOG_ERR=/tmp/example.err do_exec() { $EXEC -home "$JAVA_HOME" -cp $CLASS_PATH -user $USER -outfile $LOG_OUT -errfile $LOG_ERR -pidfile $PID $1 $CLASS } case "$1" in start) do_exec ;; stop) do_exec "-stop" ;; restart) if [ -f "$PID" ]; then do_exec "-stop" do_exec else echo "service not running, will do nothing" exit 1 fi ;; *) echo "usage: daemon {start|stop|restart}" &gt;&amp;2 exit 3 ;; esac </code></pre> <p>And the effect:</p> <pre><code>$ ./service start &amp;&amp; sleep 5 &amp;&amp; ./service stop $ cat /tmp/example.out initializing ... starting ... Fri Oct 07 16:26:54 EEST 2011 running ... Fri Oct 07 16:26:55 EEST 2011 running ... Fri Oct 07 16:26:56 EEST 2011 running ... Fri Oct 07 16:26:57 EEST 2011 running ... Fri Oct 07 16:26:58 EEST 2011 running ... stopping ... done. </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload