| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | #!/bin/sh##       /etc/init.d/gogs##       Runs the Gogs Go Git Service.#### BEGIN INIT INFO# Provides:          gogs# Required-Start:    $remote_fs# Required-Stop:     $remote_fs# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: Start gogs at boot time.# Description:       Control gogs.### END INIT INFO# Default valuesNAME=gogsGOGS_HOME=/home/git/gogsGOGS_PATH=${GOGS_HOME}/$NAMEGOGS_USER=gitSERVICENAME="Go Git Service"LOCKFILE=/var/lock/subsys/gogsLOGPATH=${GOGS_HOME}/logLOGFILE=${LOGPATH}/error.log# gogs creates its own gogs.log from stdoutRETVAL=0# Read configuration from /etc/sysconfig/gogs to override defaults[ -r /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME# Don't do anything if nothing is installedtest -x ${GOGS_PATH} || { echo "$NAME not installed";	if [ "$1" = "stop" ]; then exit 0;	else exit 5; fi; }# exit if logpath dir is not created.test -r ${LOGPATH} || { echo "$LOGPATH not existing";	if [ "$1" = "stop" ]; then exit 0;	else exit 6; fi; }# Source function library.. /etc/rc.status# Reset status of this servicerc_resetcase "$1" in    start)		echo -n "Starting ${SERVICENAME} "		# As we can't use startproc, we have to check ourselves if the service is already running		/sbin/checkproc ${GOGS_PATH}		if [ $? -eq 0 ]; then			# return skipped as service is already running			(exit 5)		else			su - ${GOGS_USER} -c "USER=${GOGS_USER} ${GOGS_PATH} web 2>&1 >>${LOGFILE} &"		fi		# Remember status and be verbose		rc_status -v	;;	stop)		echo -n "Shutting down ${SERVICENAME} "		## Stop daemon with killproc(8) and if this fails		## killproc sets the return value according to LSB.		/sbin/killproc ${GOGS_PATH}		# Remember status and be verbose		rc_status -v	;;	restart)		## Stop the service and regardless of whether it was		## running or not, start it again.		$0 stop		$0 start		# Remember status and be quiet		rc_status	;;	status)		echo -n "Checking for ${SERVICENAME} "		## Check status with checkproc(8), if process is running		## checkproc will return with exit status 0.		# Return value is slightly different for the status command:		# 0 - service up and running		# 1 - service dead, but /var/run/  pid  file exists		# 2 - service dead, but /var/lock/ lock file exists		# 3 - service not running (unused)		# 4 - service status unknown :-(		# 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)		# NOTE: checkproc returns LSB compliant status values.		/sbin/checkproc ${GOGS_PATH}		# NOTE: rc_status knows that we called this init script with		# "status" option and adapts its messages accordingly.		rc_status -v	;;    *)		echo "Usage: $0 {start|stop|status|restart}"		exit 1	;;esacrc_exit
 |