#!/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