#!/bin/sh # Manage (i.e. start/stop/restart) a daemon process. # # The process is first notified to shut down by a SIGTERM. # If it is still alive after a 3 seconds, a SIGKILL is sent. PIDFILE="daemon.pid" case "$1" in start) echo "Starting daemon..." # Example call. Replace with your application. example_program --daemon --pid-file=$PIDFILE ;; stop) if [ ! -f $PIDFILE ]; then echo "Could not get pid, $PIDFILE not found." else PID=`cat $PIDFILE` kill -0 $PID 2> /dev/null if [ $? -ne 0 ]; then echo "Daemon not running." else echo "Found pid $PID, stopping daemon..." kill $PID for i in {0..3}; do kill -0 $PID 2> /dev/null if [ $? -eq 0 ]; then break fi sleep 1 done kill -kill $PID 2> /dev/null echo "Done." fi fi ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" >&2 exit 2 ;; esac