FastCGI startup script (#583)
parent
4fcc898719
commit
a9693a8612
@ -0,0 +1,121 @@ |
||||
#!/bin/sh |
||||
|
||||
### BEGIN INIT INFO |
||||
# Provides: nginx |
||||
# 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 nginx web server |
||||
# Description: starts nginx using start-stop-daemon |
||||
### END INIT INFO |
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin |
||||
DAEMON=`which plackup` |
||||
APP=/usr/share/lemonldap-ng/fastcgi-server.psgi |
||||
PID=/run/llng-fastcgi-server.pid |
||||
NPROC=10 |
||||
MODE=deployment |
||||
NAME=llng-fastcgi-server |
||||
DESC=llng-fastcgi-server |
||||
SOCKET=/run/llng-fastcgi-server.sock |
||||
USER=www-data |
||||
GROUP=www-data |
||||
|
||||
# Include nginx defaults if available |
||||
if [ -r /etc/default/llng-fastcgi-server ]; then |
||||
. /etc/default/llng-fastcgi-server |
||||
fi |
||||
|
||||
DAEMON_OPTS="-s FCGI --listen $SOCKET -a $APP --daemonize --pid $PID -nproc NPROC --proc-title llng-fastcgi-server --no-default-middleware -E $MODE" |
||||
|
||||
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 nginx pidfile |
||||
if [ -z "$PID" ]; then |
||||
PID=/run/llng-fastcgi-server.pid |
||||
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 -c $USER:$GROUP --quiet --pidfile $PID --exec $DAEMON --test > /dev/null \ |
||||
|| return 1 |
||||
start-stop-daemon --start -c $USER:$GROUP --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 --name $NAME |
||||
RETVAL="$?" |
||||
sleep 1 |
||||
return "$RETVAL" |
||||
} |
||||
|
||||
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|force-reload) |
||||
log_daemon_msg "Restarting $DESC" "$NAME" |
||||
|
||||
# Check configuration before stopping nginx |
||||
if ! test_config; then |
||||
log_end_msg 1 # Configuration error |
||||
exit $? |
||||
fi |
||||
|
||||
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 |
||||
;; |
||||
status) |
||||
status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $? |
||||
;; |
||||
*) |
||||
echo "Usage: $NAME {start|stop|restart|force-reload|status}" >&2 |
||||
exit 3 |
||||
;; |
||||
esac |
Loading…
Reference in new issue