File: lemonldap-ng-fastcgi-server.init

package info (click to toggle)
lemonldap-ng 2.22.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 28,496 kB
  • sloc: perl: 82,472; javascript: 25,424; xml: 6,473; makefile: 1,327; sh: 492; sql: 159; python: 55; php: 26
file content (139 lines) | stat: -rwxr-xr-x 3,243 bytes parent folder | download | duplicates (8)
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