Last active
September 29, 2018 02:17
-
-
Save fangpsh/568fe0f550185ccacee7c735ee2cf2e6 to your computer and use it in GitHub Desktop.
/etc/init.d/rsyncd for centos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: rsyncd | |
# Required-Start: $remote_fs $syslog | |
# Required-Stop: $remote_fs $syslog | |
# Should-Start: $named | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: | |
# 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_ENABLE=true | |
RSYNC_OPTS='' | |
RSYNC_DEFAULTS_FILE=/etc/default/rsync | |
RSYNC_CONFIG_FILE=/etc/rsyncd.conf | |
RSYNC_PID_FILE=/var/run/rsyncd.pid | |
RSYNC_NICE_PARM='' | |
RSYNC_IONICE_PARM='' | |
test -x $DAEMON || exit 0 | |
. /lib/lsb/init-functions | |
if [ -s $RSYNC_DEFAULTS_FILE ]; then | |
. $RSYNC_DEFAULTS_FILE | |
case "x$RSYNC_ENABLE" in | |
xtrue|xfalse) ;; | |
xinetd) exit 0 | |
;; | |
*) log_failure_msg "Value of RSYNC_ENABLE in $RSYNC_DEFAULTS_FILE must be either 'true' or 'false';" | |
log_failure_msg "not starting rsync daemon." | |
exit 1 | |
;; | |
esac | |
case "x$RSYNC_NICE" in | |
x[0-9]) RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";; | |
x1[0-9]) RSYNC_NICE_PARM="--nicelevel $RSYNC_NICE";; | |
x) ;; | |
*) log_warning_msg "Value of RSYNC_NICE in $RSYNC_DEFAULTS_FILE must be a value between 0 and 19 (inclusive);" | |
log_warning_msg "ignoring RSYNC_NICE now." | |
;; | |
esac | |
case "x$RSYNC_IONICE" in | |
x-c[123]*) RSYNC_IONICE_PARM="$RSYNC_IONICE";; | |
x) ;; | |
*) log_warning_msg "Value of RSYNC_IONICE in $RSYNC_DEFAULTS_FILE must be -c1, -c2 or -c3;" | |
log_warning_msg "ignoring RSYNC_IONICE now." | |
;; | |
esac | |
fi | |
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" | |
rsync_start() { | |
if [ ! -s "$RSYNC_CONFIG_FILE" ]; then | |
log_failure_msg "missing or empty config file $RSYNC_CONFIG_FILE" | |
exit 0 | |
fi | |
# See ionice(1) | |
if [ -n "$RSYNC_IONICE_PARM" ] && [ -x /usr/bin/ionice ] && | |
/usr/bin/ionice "$RSYNC_IONICE_PARM" true 2>/dev/null; then | |
/usr/bin/ionice "$RSYNC_IONICE_PARM" -p$$ > /dev/null 2>&1 | |
fi | |
if start_daemon $DAEMON --daemon --config "$RSYNC_CONFIG_FILE" $RSYNC_OPTS | |
then | |
rc=0 | |
sleep 1 | |
if ! kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then | |
log_failure_msg "rsync daemon failed to start" | |
rc=1 | |
else | |
log_success_msg "rsync daemon started successfully" | |
fi | |
else | |
rc=1 | |
fi | |
if [ $rc -ne 0 ]; then | |
rm -f $RSYNC_PID_FILE | |
fi | |
} # rsync_start | |
case "$1" in | |
start) | |
if "$RSYNC_ENABLE"; then | |
log_success_msg "Starting rsync daemon" "rsync" | |
if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then | |
log_warning_msg "apparently already running" | |
exit 0 | |
fi | |
rsync_start | |
else | |
if [ -s "$RSYNC_CONFIG_FILE" ]; then | |
[ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_FILE, not starting..." | |
fi | |
fi | |
;; | |
stop) | |
log_success_msg "Stopping rsync daemon" "rsync" | |
killproc -p $RSYNC_PID_FILE "$DAEMON" rsync | |
rm -f $RSYNC_PID_FILE | |
;; | |
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 $RSYNC_ENABLE; then | |
log_success_msg "Restarting rsync daemon" "rsync" | |
if [ -s $RSYNC_PID_FILE ] && kill -0 $(cat $RSYNC_PID_FILE) >/dev/null 2>&1; then | |
killproc -p $RSYNC_PID_FILE || true | |
sleep 1 | |
else | |
log_warning_msg "rsync daemon not running, attempting to start." | |
rm -f $RSYNC_PID_FILE | |
fi | |
rsync_start | |
else | |
if [ -s "$RSYNC_CONFIG_FILE" ]; then | |
[ "$VERBOSE" != no ] && log_warning_msg "rsync daemon not enabled in $RSYNC_DEFAULTS_FILE, not starting..." | |
fi | |
fi | |
;; | |
status) | |
set +e | |
pidofproc -p $RSYNC_PID_FILE "$DAEMON" rsync 1>2 2>/dev/null | |
case "$?" in | |
0) | |
log_success_msg "$DAEMON is running..." | |
exit 0 | |
;; | |
1) | |
log_warning_msg "$DAEMON dead but pid file exists" | |
exit 1 | |
;; | |
3) | |
log_warning_msg "$DAEMON is not running" | |
exit 3 | |
;; | |
esac | |
;; | |
*) | |
echo "Usage: /etc/init.d/rsync {start|stop|reload|force-reload|restart|status}" | |
exit 1 | |
esac | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
fork from : https://github.com/chrisdew/rsync/blob/master/rsync-3.0.7/debian/init.d
requires:
yum install redhat-lsb-core