3 # rsyncd This shell script takes care of starting and stopping rsyncd
6 # description: rsync daemon
11 [ -f /etc/sysconfig/rsyncd ] && . /etc/sysconfig/rsyncd
13 [ -n "$2" ] && DAEMONS="$2"
15 # no daemons. exit silently
16 if [ -z "$DAEMONS" ]; then
18 start|stop|restart|reload|force-reload)
24 # Source function library
25 . /etc/rc.d/init.d/functions
27 # Source networking configuration.
28 . /etc/sysconfig/network
30 # Check that networking is up.
31 if is_yes "${NETWORKING}"; then
32 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
33 msg_network_down rsyncd
40 # check if the daemon $1 is up
43 local pidfile=/var/run/rsyncd/$daemon.pid
44 local pid=$(cat $pidfile 2>/dev/null)
45 kill -0 $pid 2>/dev/null
49 # check if all the configured daemons are up
53 for daemon in $DAEMONS; do
54 daemonup $daemon && continue
61 msg_starting "rsyncd"; started
62 for daemon in $DAEMONS; do
63 config="/etc/rsyncd/$daemon.conf"
64 if [ ! -f "$config" ]; then
65 nls "Invalid daemon \`%s': missing config: %s" $daemon "$config"
69 daemonup $daemon && continue
70 show "Starting Rsync daemon %s" "$daemon"; busy
71 daemon /usr/bin/rsync --daemon --config=$config --dparam=pidfile=/var/run/rsyncd/$daemon.pid ${RSYNC_OPTIONS}
74 [ $RETVAL -eq 0 ] && RETVAL=$RET
76 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rsyncd
80 msg_stopping "rsyncd"; started
81 for daemon in $DAEMONS; do
82 pidfile=/var/run/rsyncd/$daemon.pid
83 [ -f "$pidfile" ] || continue
85 show "Stopping Rsync daemon %s" "$daemon"; busy
86 killproc --pidfile rsyncd/$daemon.pid || err=1
88 rm -f /var/lock/subsys/rsyncd >/dev/null 2>&1
92 msg_reloading "rsyncd"; started
93 for daemon in $DAEMONS; do
94 pidfile=/var/run/rsyncd/$daemon.pid
95 [ -f "$pidfile" ] || continue
96 show "Reloading Rsync daemon %s" "$daemon"
97 killproc --pidfile rsyncd/$daemon.pid rsyncd -HUP
98 [ $? -ne 0 -a $RETVAL -eq 0 ] && RETVAL=7
103 if [ -f /var/lock/subsys/rsyncd ]; then
107 msg_not_running rsyncd
113 nls "Configured daemons:"
115 nls "Currently active daemons:"
116 for pidfile in /var/run/rsyncd/*.pid; do
117 [ -f "$pidfile" ] || continue
118 daemon=${pidfile#/var/run/rsyncd/}
119 daemon=${daemon%.pid}
120 daemonup $daemon && echo -n " $daemon($(cat $pidfile))"
123 nm_rsyncd_pid=$(ps -o pid= -C nm-rsyncd-service | xargs)
124 if [ "$nm_rsyncd_pid" ]; then
125 nls "NM ($nm_rsyncd_pid) managed rsyncd sessions"
126 ps -o pid,user,command --ppid=$nm_rsyncd_pid
133 # See how we were called.
159 msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"