#! /bin/sh # # monotone Monotone server init script. # # Author: Matthew A. Nicholson . # ### BEGIN INIT INFO # Provides: monotone # Required-Start: $network $local_fs # Required-Stop: $network $local_fs # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: Monotone server. ### END INIT INFO set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="Monotone Server" NAME=monotone EXECNAME=mtn DAEMON=/usr/bin/$EXECNAME PIDFILE=/var/run/$NAME/$EXECNAME.pid SCRIPTNAME=/etc/init.d/$NAME MAINLOG=/var/log/$NAME/$EXECNAME.log ERRORLOG=/var/log/$NAME/error.log # defaults for /etc/default/monotone START=1 ADDRESS=0.0.0.0 MTN_HOME=/var/lib/monotone MTN_CONFDIR=/etc/monotone MTN_KEYDIR=$MTN_HOME/keys MTN_DB=$MTN_HOME/default.mtn # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 # Get the logging helpers. . /lib/lsb/init-functions # Read config file if [ -r /etc/default/$NAME ]; then . /etc/default/$NAME fi # Function that starts the daemon. d_start() { if [ "$START" -ne 1 ]; then log_action_msg "$NAME configured in /etc/default/$NAME not to start" return 0 fi log_daemon_msg "Starting $DESC" "$NAME" if start-stop-daemon --start --quiet --oknodo --background \ --pidfile $PIDFILE --exec $DAEMON --chuid monotone --chdir $MTN_HOME \ -- \ --confdir=$MTN_CONFDIR --db=$MTN_DB --norc --pid-file=$PIDFILE \ --log=$MAINLOG --dump=$ERRORLOG \ --rcfile=$MTN_CONFDIR/hooks.lua --keydir=$MTN_KEYDIR --quiet \ --bind=$ADDRESS serve then log_end_msg 0 else log_end_msg 1 fi } # Function that stops the daemon. d_stop() { if [ "$START" -ne 1 ]; then return 0 fi log_daemon_msg "Stopping $DESC" "$NAME" if start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE \ --name $EXECNAME --user monotone then rm -f $PIDFILE log_end_msg 0 else log_end_msg 1 fi } case "$1" in start) d_start ;; stop) d_stop ;; restart|force-reload) d_stop d_start ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac