1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
#!/bin/sh
### BEGIN INIT INFO
# Provides: lemonldap-ng-fastcgi-server
# Required-Start: $local_fs $remote_fs $network $syslog $named
# Required-Stop: $local_fs $remote_fs $network $syslog $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the Lemonldap::NG FastCGI server
# Description: starts Lemonldap::NG FastCGI server using start-stop-daemon
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/llng-fastcgi-server
NAME=llng-fastcgi-server
DESC=llng-fastcgi-server
# Include llng-fastcgi-server defaults if available
if [ -r /etc/default/lemonldap-ng-fastcgi-server ]; then
. /etc/default/lemonldap-ng-fastcgi-server
fi
STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}"
test -x $DAEMON || exit 0
. /lib/init/vars.sh
. /lib/lsb/init-functions
# Try to extract llng-fastcgi-server pidfile
if [ -z "$PID" ]; then
PID=/run/llng-fastcgi-server/llng-fastcgi-server.pid
fi
if [ -z "$SOCKET" ]; then
SOCKET=/run/llng-fastcgi-server/llng-fastcgi.sock
fi
for f in "$PID" "$SOCKET"; do
DIR=`dirname "$f"`
if [ ! -d "$DIR" ]; then
mkdir -p "$DIR"
if [ -n "$USER" ]; then
chown "$USER" "$DIR"
fi
if [ -n "$GROUP" ]; then
chgrp "$GROUP" "$DIR"
fi
fi
done
DAEMON_OPTS="-p ${PID} -u ${USER} -g ${GROUP} -s ${SOCKET}"
if [ -z "$CUSTOM_FUNCTIONS_FILE" ]; then
DAEMON_OPTS="$DAEMON_OPTS -f ${CUSTOM_FUNCTIONS_FILE}"
fi
start_server() {
# Start the daemon/service
#
# Returns:
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON -- \
$DAEMON_OPTS 2>/dev/null \
|| return 2
}
stop_server() {
# Stops the daemon/service
#
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --exec $DAEMON
RETVAL="$?"
sleep 1
return "$RETVAL"
}
reload_server() {
# Function that sends a SIGHUP to the daemon/service
start-stop-daemon --stop --signal HUP --quiet --pidfile $PID --exec $DAEMON
return 0
}
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
start_server
case "$?" in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
stop_server
case "$?" in
0|1) log_end_msg 0 ;;
2) log_end_msg 1 ;;
esac
;;
restart)
log_daemon_msg "Restarting $DESC" "$NAME"
stop_server
case "$?" in
0|1)
start_server
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
;;
reload|force-reload)
log_daemon_msg "Reloading $DESC configuration" "$NAME"
reload_server
log_end_msg $?
;;
status)
status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $?
;;
*)
echo "Usage: $NAME {start|stop|restart|reload|force-reload|status}" >&2
exit 3
;;
esac
|