Last active
April 27, 2016 16:26
-
-
Save hermzz/3339872 to your computer and use it in GitHub Desktop.
Lsyncd2 init.d script for Debian Squeeze
This file contains hidden or 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: lsyncd | |
| # Required-Start: $all | |
| # Required-Stop: $all | |
| # Default-Start: 2 3 4 5 | |
| # Default-Stop: 0 1 6 | |
| # Short-Description: starts the lsyncd daemon | |
| # Description: starts lsyncd using start-stop-daemon | |
| ### END INIT INFO | |
| DAEMON=/usr/local/bin/lsyncd | |
| NAME=lsyncd | |
| DESC=lsyncd | |
| CONFIG_FILE=/etc/lsyncd/config.lua | |
| PID_FILE=/var/run/$NAME.pid | |
| test -x $DAEMON || exit 0 | |
| # Include lsyncd defaults if available | |
| if [ -f /etc/lsyncd/nginx ] ; then | |
| . /etc/lscynd/nginx | |
| fi | |
| set -e | |
| start () | |
| { | |
| echo -n "Starting $DESC: " | |
| start-stop-daemon --start --quiet --pidfile $PID_FILE --exec $DAEMON -- $CONFIG_FILE | |
| echo "$NAME." | |
| } | |
| stop () | |
| { | |
| if [ ! -e $PID_FILE ]; then | |
| echo "$DESC already stopped" | |
| else | |
| echo -n "Stopping $DESC: " | |
| start-stop-daemon --stop --quiet --pidfile $PID_FILE --exec $DAEMON | |
| echo "$NAME." | |
| fi | |
| } | |
| case "$1" in | |
| start) | |
| start | |
| ;; | |
| stop) | |
| stop | |
| ;; | |
| restart|force-reload) | |
| stop | |
| start | |
| ;; | |
| reload) | |
| echo -n "Reloading $DESC configuration: " | |
| start-stop-daemon --stop --signal HUP --quiet --pidfile $PID_FILE --exec $DAEMON | |
| echo "$NAME." | |
| ;; | |
| *) | |
| N=/etc/init.d/$NAME | |
| echo "Usage: $N {start|stop|restart|force-reload}" >&2 | |
| exit 1 | |
| ;; | |
| esac | |
| exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi! Thanks for sharing this code.
I tried it but when stopping Lsync daemon, this script doesn't stop it.
I installed official Debian package and I got a different init script. The official script does stop Lsync correctly.
This is it, if you want it (github doesn't format it correctly):
! /bin/sh
BEGIN INIT INFO
Provides: lsyncd
Required-Start: $remote_fs
Required-Stop: $remote_fs
Default-Start: 2 3 4 5
Default-Stop: 0 1 6
Short-Description: lsyncd daemon init script
Description: This script launches the lsyncd daemon.
END INIT INFO
Author: Ignace Mouzannar ignace@enovance.com
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="LSYNC daemon"
NAME=lsyncd
DAEMON=/usr/local/bin/$NAME
CONFIG=/etc/lsyncd/lsyncd.conf.lua
PIDFILE=/var/run/$NAME.pid
DAEMON_ARGS="-pidfile ${PIDFILE} ${CONFIG}"
SCRIPTNAME=/etc/init.d/$NAME
Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
Exit if config file does not exist
[ -r "$CONFIG" ] || exit 0
Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
Define LSB log_* functions.
Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
Function that starts the daemon/service
do_start()
{
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON
--test > /dev/null
|| return 1
start-stop-daemon --start --quiet --make-pidfile --pidfile $PIDFILE
--exec $DAEMON --
$DAEMON_ARGS
|| return 2
}
Function that stops the daemon/service
do_stop()$NAME && exit 0 || exit $ ?
{
start-stop-daemon --stop --quiet --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc $DAEMON
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
: