| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | #! /bin/sh### BEGIN INIT INFO# Provides:          gogs# Required-Start:    $syslog $network# Required-Stop:     $syslog# Should-Start:      mysql postgresql# Should-Stop:       mysql postgresql# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: A self-hosted Git service written in Go.# Description:       A self-hosted Git service written in Go.### END INIT INFO# Author: Danny Boisvert# Do NOT "set -e"# PATH should only include /usr/* if it runs after the mountnfs.sh scriptPATH=/sbin:/usr/sbin:/bin:/usr/binDESC="Gogs"NAME=gogsSERVICEVERBOSE=yesPIDFILE=/var/run/$NAME.pidSCRIPTNAME=/etc/init.d/$NAMEWORKINGDIR=/home/git/gogsDAEMON=$WORKINGDIR/$NAMEDAEMON_ARGS="web"USER=git# 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# 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"}## 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"}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		;;esac
 |