#! /bin/sh
### BEGIN INIT INFO# Provides: rslsync daemon# Required-Start: $syslog# Required-Stop: $syslog# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: RSLSync server daemon# Description: Daemon script to run a RSLSync permanent peer# Placed in /etc/init.d.### END INIT INFO# Author: Nicolas Bernaerts < nicolas.bernaerts@laposte.net># Version:# V1.0, 06/09/2013 - Creation# V1.1, 09/09/2013 - Use under-priviledged system user# description variablesPATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="RSLSync server"NAME="rslsync"PIDNAME="sync.pid"USER=$NAME# DAEMON=/usr/local/sbin/$NAMEROOT=/home/$NAMEDAEMON=$ROOT/.rslsync/$NAME# PIDFILE=$ROOT/$NAME.pidPIDFILE=$ROOT/.rslsync/.sync/$PIDNAMECONFIGFILE=$ROOT/.rslsync/pi_sync.conf
# Exit if rslsync program is not installedif[ ! -x "$DAEMON"];thenecho"Binary $DAEMON does not exist. Aborting"exit0fi# Exit if rslsync user home directory doesn't existif[ ! -d "$ROOT"];thenecho"User $USER does not exist. Aborting"exit0fi# Function that starts the daemon/service# 0 - daemon started# 1 - daemon already running# 2 - daemon could not be started
do_start(){# If needed, start the daemonif[ -f "$PIDFILE"]thenecho"$NAME already running"RETVAL="1"else
start-stop-daemon --start --quiet --chuid $USER --name $NAME --exec $DAEMON -- --config $CONFIGFILERETVAL="$?"["$RETVAL"="0"]&& echo "$NAME started"fireturn"$RETVAL"}# Function that stops the daemon/service# 0 - daemon stopped# 1 - daemon already stopped# 2 - daemon could not be stopped
do_stop(){# Stop the daemon
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAMERETVAL="$?"["$RETVAL"="0"]&& echo "$NAME stopped"["$RETVAL"="1"]&& echo "$NAME was not running"# remove pid file
rm -f $PIDFILEreturn"$RETVAL"}# deal with different parameters : start, stop & statuscase"$1" in
# start service
start)
do_start
;;# stop service
stop)
do_stop
;;# restart service
restart)
do_stop
do_start
;;# unknown command, display help message
*)echo"Usage : $SCRIPTNAME {start|stop|restart}" >&2exit3;;esac