summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorCorben Dallas <Corben78@users.noreply.github.com>2016-08-31 23:04:21 +0200
committer无闻 <u@gogs.io>2016-08-31 14:04:21 -0700
commitd09fca3ca9f40be6b4c291028418d5c95428db17 (patch)
tree7d3dd3b6392eb5f9c2f918206200ce25de8153f3 /scripts
parentdadd35b63647327bed02719f6cda5d25256fa49e (diff)
downloadgitea-d09fca3ca9f40be6b4c291028418d5c95428db17.tar.gz
gitea-d09fca3ca9f40be6b4c291028418d5c95428db17.zip
Add a (Open)SuSE init script (#3558)
Diffstat (limited to 'scripts')
-rw-r--r--scripts/init/suse/gogs115
1 files changed, 115 insertions, 0 deletions
diff --git a/scripts/init/suse/gogs b/scripts/init/suse/gogs
new file mode 100644
index 0000000000..ea7dfa0a6e
--- /dev/null
+++ b/scripts/init/suse/gogs
@@ -0,0 +1,115 @@
+#!/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 values
+
+NAME=gogs
+GOGS_HOME=/home/git/gogs
+GOGS_PATH=${GOGS_HOME}/$NAME
+GOGS_USER=git
+SERVICENAME="Go Git Service"
+LOCKFILE=/var/lock/subsys/gogs
+LOGPATH=${GOGS_HOME}/log
+LOGFILE=${LOGPATH}/error.log
+# gogs creates its own gogs.log from stdout
+RETVAL=0
+
+# Read configuration from /etc/sysconfig/gogs to override defaults
+[ -r /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME
+
+# Don't do anything if nothing is installed
+test -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 service
+rc_reset
+
+
+case "$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
+ ;;
+
+esac
+rc_exit