#! /bin/sh ### BEGIN INIT INFO # Provides: rsyncd # Required-Start: $network # Required-Stop: $syslog # Should-Start: $named $syslog # Should-Stop: $syslog network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: fast remote file copy program daemon # Description: rsync is a program that allows files to be copied to and # from remote machines in much the same way as rcp. # This provides rsyncd daemon functionality. ### END INIT INFO set -e # /etc/init.d/rsync: start and stop the rsync daemon DAEMON=/usr/bin/rsync RSYNC_OPTS="" RSYNC_CONFIG_FILE="/etc/rsyncd.conf" RSYNC_NICE_PARM="" test -x $DAEMON || exit 0 if [ ! -f $RSYNC_CONFIG_FILE ] then exit 1 else . /lib/lsb/init-functions START_RSYNCD=`grep '^START_RSYNCD=' ${RSYNC_CONFIG_FILE}` RSYNC_NICE=`grep '^RSYNC_NICE=' ${RSYNC_CONFIG_FILE} | sed 's/RSYNC_NICE=//' | sed 's/\"//g'` fi case "$START_RSYNCD" in *\=?T*|*\=?t*) START_RSYNCD=true ;; *) START_RSYNCD=false ;; esac case "x$RSYNC_NICE" in x[0-9]) RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";; x[1-9][0-9]) RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";; x) ;; *) ;; esac export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" case "$1" in start) if $START_RSYNCD then log_daemon_msg "Starting rsync daemon" "rsync" if [ -s /var/run/rsync.pid ] && kill -0 $(cat /var/run/rsync.pid) >/dev/null 2>&1 then log_progress_msg "apparently already running" log_end_msg 0 exit 0 fi if [ ! -s "$RSYNC_CONFIG_FILE" ] then log_failure_msg "missing or empty config file $RSYNC_CONFIG_FILE" log_end_msg 1 exit 1 fi start-stop-daemon --start --quiet --background --pidfile /var/run/rsync.pid --make-pidfile \ $RSYNC_NICE_PARM --exec /usr/bin/rsync \ -- --no-detach --daemon --config "$RSYNC_CONFIG_FILE" $RSYNC_OPTS log_end_msg $? else if [ -s "$RSYNC_CONFIG_FILE" ] then [ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in /etc/rsync.conf, not starting..." fi fi ;; stop) log_daemon_msg "Stopping rsync daemon" "rsync" start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/rsync.pid log_end_msg $? rm -f /var/run/rsync.pid ;; status) if start-stop-daemon --start --test --pidfile /var/run/rsync.pid --name rsync --startas $DAEMON >/dev/null then log_action_msg "Rsync is not running" exit 1 else npid=`cat /var/run/rsync.pid` log_action_msg "Rsync is running with pid $npid" fi ;; reload|force-reload) log_warning_msg "Reloading rsync daemon: not needed, as the daemon" log_warning_msg "re-reads the config file whenever a client connects." ;; restart) set +e if $START_RSYNCD then log_daemon_msg "Restarting rsync daemon" "rsync" if [ -s /var/run/rsync.pid ] && kill -0 $(cat /var/run/rsync.pid) >/dev/null 2>&1 then start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/rsync.pid || true sleep 1 else rm -f /var/run/rsync.pid fi if start-stop-daemon --start --quiet --background --pidfile /var/run/rsync.pid --make-pidfile \ $RSYNC_NICE_PARM --exec /usr/bin/rsync \ -- --no-detach --daemon --config "$RSYNC_CONFIG_FILE" $RSYNC_OPTS then log_end_msg 0 else log_end_msg 1 rm -f /var/run/rsync.pid fi else [ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in /etc/default/rsync, not starting..." fi ;; *) log_action_msg "Usage: /etc/init.d/rsync {start|stop|reload|force-reload|restart}" exit 1 ;; esac exit 0