| @@ -1,4 +1,4 @@ | |||
| #! /bin/sh | |||
| #!/bin/sh | |||
| ### BEGIN INIT INFO | |||
| # Provides: gitea | |||
| # Required-Start: $syslog $network | |||
| @@ -24,6 +24,8 @@ WORKINGDIR=/home/git/gitea | |||
| DAEMON=$WORKINGDIR/$NAME | |||
| DAEMON_ARGS="web" | |||
| USER=git | |||
| USERBIND="setcap cap_net_bind_service=+ep" | |||
| STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/1/KILL/5}" | |||
| # Read configuration variable file if it is present | |||
| [ -r /etc/default/$NAME ] && . /etc/default/$NAME | |||
| @@ -31,96 +33,54 @@ USER=git | |||
| # Exit if the package is not installed | |||
| [ -x "$DAEMON" ] || exit 0 | |||
| # Load the VERBOSE setting and other rcS variables | |||
| . /lib/init/vars.sh | |||
| # Define LSB log_* functions. | |||
| # Depend on lsb-base (>= 3.2-14) to ensure that this file is present | |||
| # and status_of_proc is working. | |||
| . /lib/lsb/init-functions | |||
| # | |||
| # Function that starts the daemon/service | |||
| # | |||
| do_start() | |||
| { | |||
| # Return | |||
| # 0 if daemon has been started | |||
| # 1 if daemon was already running | |||
| # 2 if daemon could not be started | |||
| sh -c "USER=$USER start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ | |||
| --test --chdir $WORKINGDIR --chuid $USER \\ | |||
| --exec $DAEMON -- $DAEMON_ARGS > /dev/null \\ | |||
| || return 1" | |||
| sh -c "USER=$USER start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ | |||
| --background --chdir $WORKINGDIR --chuid $USER \\ | |||
| --exec $DAEMON -- $DAEMON_ARGS \\ | |||
| || return 2" | |||
| $USERBIND $DAEMON | |||
| sh -c "USER=$USER start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ | |||
| --background --chdir $WORKINGDIR --chuid $USER \\ | |||
| --exec $DAEMON -- $DAEMON_ARGS" | |||
| } | |||
| # | |||
| # Function that stops the daemon/service | |||
| # | |||
| do_stop() | |||
| { | |||
| # 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=TERM/1/KILL/5 --pidfile $PIDFILE --name $NAME | |||
| RETVAL="$?" | |||
| [ "$RETVAL" = 2 ] && return 2 | |||
| start-stop-daemon --stop --quiet --oknodo --retry=0/1/KILL/5 --exec $DAEMON | |||
| [ "$?" = 2 ] && return 2 | |||
| # Many daemons don't delete their pidfiles when they exit. | |||
| rm -f $PIDFILE | |||
| return "$RETVAL" | |||
| 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) | |||
| [ "$SERVICEVERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" | |||
| do_start | |||
| case "$?" in | |||
| 0|1) [ "$SERVICEVERBOSE" != no ] && log_end_msg 0 ;; | |||
| 2) [ "$SERVICEVERBOSE" != no ] && log_end_msg 1 ;; | |||
| esac | |||
| ;; | |||
| stop) | |||
| [ "$SERVICEVERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" | |||
| do_stop | |||
| case "$?" in | |||
| 0|1) [ "$SERVICEVERBOSE" != no ] && log_end_msg 0 ;; | |||
| 2) [ "$SERVICEVERBOSE" != no ] && log_end_msg 1 ;; | |||
| esac | |||
| ;; | |||
| status) | |||
| status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? | |||
| ;; | |||
| restart|force-reload) | |||
| log_daemon_msg "Restarting $DESC" "$NAME" | |||
| do_stop | |||
| case "$?" in | |||
| 0|1) | |||
| do_start | |||
| 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 | |||
| ;; | |||
| *) | |||
| echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 | |||
| exit 3 | |||
| ;; | |||
| 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 | |||