88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
### BEGIN INIT INFO
 | 
						|
# Provides:          gorush
 | 
						|
# Required-Start:    $syslog $network
 | 
						|
# Required-Stop:     $syslog $network
 | 
						|
# Default-Start:     2 3 4 5
 | 
						|
# Default-Stop:      0 1 6
 | 
						|
# Short-Description: starts the gorush web server
 | 
						|
# Description:       starts gorush using start-stop-daemon
 | 
						|
### END INIT INFO
 | 
						|
 | 
						|
# Original Author: Bo-Yi Wu (appleboy)
 | 
						|
 | 
						|
# Do NOT "set -e"
 | 
						|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
 | 
						|
DESC="the gorush web server"
 | 
						|
NAME=gorush
 | 
						|
DAEMON=$(which gorush)
 | 
						|
 | 
						|
DAEMONUSER=www-data
 | 
						|
PIDFILE=/var/run/$NAME.pid
 | 
						|
CONFIGFILE=/etc/gorush/config.yml
 | 
						|
DAEMONOPTS="-c $CONFIGFILE"
 | 
						|
 | 
						|
USERBIND="setcap cap_net_bind_service=+ep"
 | 
						|
STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}"
 | 
						|
 | 
						|
# Read configuration variable file if it is present
 | 
						|
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
 | 
						|
 | 
						|
# Exit if the package is not installed
 | 
						|
[ -x "$DAEMON" ] || exit 0
 | 
						|
 | 
						|
# Set the ulimits
 | 
						|
ulimit -n 8192
 | 
						|
 | 
						|
do_start()
 | 
						|
{
 | 
						|
  $USERBIND $DAEMON
 | 
						|
  sh -c "USER=$DAEMONUSER start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\
 | 
						|
    --background --chuid $DAEMONUSER --exec $DAEMON -- $DAEMONOPTS"
 | 
						|
}
 | 
						|
 | 
						|
do_stop()
 | 
						|
{
 | 
						|
  start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PIDFILE --name $NAME --oknodo
 | 
						|
  rm -f $PIDFILE
 | 
						|
}
 | 
						|
 | 
						|
do_status()
 | 
						|
{
 | 
						|
  if [ -f $PIDFILE ]; then
 | 
						|
    if kill -0 $(cat "$PIDFILE"); then
 | 
						|
      echo "$NAME is running, PID is $(cat $PIDFILE)"
 | 
						|
    else
 | 
						|
      echo "$NAME process is dead, but pidfile exists"
 | 
						|
    fi
 | 
						|
  else
 | 
						|
    echo "$NAME is not running"
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
case "$1" in
 | 
						|
  start)
 | 
						|
    echo "Starting $DESC" "$NAME"
 | 
						|
    do_start
 | 
						|
    ;;
 | 
						|
  stop)
 | 
						|
    echo "Stopping $DESC" "$NAME"
 | 
						|
    do_stop
 | 
						|
    ;;
 | 
						|
  status)
 | 
						|
    do_status
 | 
						|
    ;;
 | 
						|
  restart)
 | 
						|
    echo "Restarting $DESC" "$NAME"
 | 
						|
    do_stop
 | 
						|
    do_start
 | 
						|
    ;;
 | 
						|
  *)
 | 
						|
    echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
 | 
						|
    exit 2
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
exit 0
 |