[packages/h2o] pldized initscript

glen glen at pld-linux.org
Fri Sep 29 14:47:48 CEST 2017


commit d822f9701fc9ae8197ddb7f25293946c8b406e00
Author: Elan Ruusamäe <glen at pld-linux.org>
Date:   Fri Sep 29 15:47:27 2017 +0300

    pldized initscript

 h2o.init | 191 +++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 118 insertions(+), 73 deletions(-)
---
diff --git a/h2o.init b/h2o.init
index 7eb0659..717b1f7 100644
--- a/h2o.init
+++ b/h2o.init
@@ -1,111 +1,156 @@
-#!/bin/bash
+#!/bin/sh
 #
-# chkconfig: - 85 15
+# H2O - the optimized HTTP/1, HTTP/2 server
+#
+# chkconfig: 345 85 15
 # description: H2O - the optimized HTTP/1, HTTP/2 server
 # processname: h2o
 # config: /etc/h2o/h2o.conf
 # pidfile: /var/run/h2o/h2o.pid
 
-### BEGIN INIT INFO
-# Provides: h2o
-# Required-Start: $local_fs $remote_fs $network $named
-# Required-Stop: $local_fs $remote_fs $network
-# Should-Start: distcache
-# Short-Description: start and stop h2o HTTP Server
-# Description: H2O - the optimized HTTP/1, HTTP/2 server
-### END INIT INFO
-
-# Source function library.
+# Source function library
 . /etc/rc.d/init.d/functions
 
-if [ -f /etc/sysconfig/h2o ]; then
-    . /etc/sysconfig/h2o
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+	if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+		msg_network_down "h2o"
+		exit 1
+	fi
+else
+	exit 0
 fi
 
+# Get service config - may override defaults
+[ -f /etc/sysconfig/h2o ] && . /etc/sysconfig/h2o
+
 # Path to the server binary, and short-form for messages.
 h2o=/usr/sbin/h2o
 prog=h2o
 configfile=/etc/h2o/h2o.conf
 lockfile=${LOCKFILE-/var/lock/subsys/h2o}
-RETVAL=0
+pidfile=/var/run/h2o.pid
 options="-m daemon -c $configfile"
 
-pidfile=`sed -ne 's|pid-file:\s*\([-_./0-9a-zA-Z]\{1,\}\)|\1|p' $configfile`
-if [ -z "$pidfile" ]; then
-    echo $"pid-file must be defined in $configfile"
-    exit 1
-fi
+# configtest itself
+# must return non-zero if check failed
+# output is discarded if checkconfig is ran without details
+configtest() {
+	$h2o -t -c ${configfile}
+}
+
+# wrapper for configtest
+checkconfig() {
+	local details=${1:-0}
+
+	if [ $details = 1 ]; then
+		# run config test and display report (status action)
+		show "Checking %s configuration" "h2o"; busy
+		local out
+		out=$(configtest 2>&1)
+		RETVAL=$?
+		if [ $RETVAL = 0 ]; then
+			ok
+		else
+			fail
+		fi
+		[ "$out" ] && echo >&2 "$out"
+	else
+		# run config test and abort with nice message if failed
+		# (for actions checking status before action).
+		configtest >/dev/null 2>&1
+		RETVAL=$?
+		if [ $RETVAL != 0 ]; then
+			show "Checking %s configuration" "h2o"; fail
+			nls 'Configuration test failed. See details with %s "checkconfig"' $0
+			exit $RETVAL
+		fi
+	fi
+}
 
 start() {
-    echo -n $"Starting $prog: "
-    daemon --pidfile=${pidfile} $h2o $options
-    RETVAL=$?
-    echo
-    [ $RETVAL = 0 ] && touch ${lockfile}
-    return $RETVAL
+	# Check if the service is already running?
+	if [ -f $lockfile ]; then
+		msg_already_running "h2o"
+		return
+	fi
+
+	msg_starting "h2o"
+	daemon --pidfile $pidfile $h2o $options
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch $lockfile
 }
 
 stop() {
-    echo -n $"Stopping $prog: "
-    killproc -p ${pidfile} $h2o -TERM
-    RETVAL=$?
-    echo
-    [ $RETVAL = 0 ] && rm -f ${lockfile}
+	if [ ! -f $lockfile ]; then
+		msg_not_running "h2o"
+		return
+	fi
+
+	# Stop daemons.
+	msg_stopping "h2o"
+	killproc --pidfile $pidfile h2o -TERM
+	rm -f $lockfile
 }
 
 reload() {
-    echo -n $"Reloading $prog: "
-    if ! $h2o -t -c ${configfile} >&/dev/null; then
-        RETVAL=6
-        echo $"not reloading due to configuration syntax error"
-        failure $"not reloading $h2o due to configuration syntax error"
-    else
-        # Force LSB behaviour from killproc
-        LSB=1 killproc -p ${pidfile} $h2o -HUP
-        RETVAL=$?
-        if [ $RETVAL -eq 7 ]; then
-            failure $"h2o shutdown"
-        fi
-    fi
-    echo
+	if [ ! -f $lockfile ]; then
+		msg_not_running "h2o"
+		RETVAL=7
+		return
+	fi
+
+	checkconfig
+	msg_reloading "h2o"
+	killproc --pidfile $pidfile h2o -HUP
+	RETVAL=$?
 }
 
-configtest() {
-    $h2o -t -c ${configfile}
+condrestart() {
+	if [ ! -f $lockfile ]; then
+		msg_not_running "h2o"
+		RETVAL=$1
+		return
+	fi
+
+	checkconfig
+	stop
+	start
 }
 
+RETVAL=0
 # See how we were called.
 case "$1" in
   start)
-        start
-        ;;
+	start
+	;;
   stop)
-        stop
-        ;;
-  status)
-        status -p ${pidfile} $h2o
-        RETVAL=$?
-        ;;
+	stop
+	;;
   restart)
-        stop
-        start
-        ;;
-  condrestart|try-restart)
-        if status -p ${pidfile} $h2o >&/dev/null; then
-            stop
-            start
-        fi
-        ;;
-  force-reload|reload)
-        reload
-        ;;
-  configtest)
-        configtest
-        RETVAL=$?
-        ;;
+	checkconfig
+	stop
+	start
+	;;
+  try-restart)
+	condrestart 0
+	;;
+  reload|force-reload)
+	reload
+	;;
+  checkconfig|configtest)
+	checkconfig 1
+	;;
+  status)
+	status --pidfile $pidfile h2o
+	RETVAL=$?
+	;;
   *)
-        echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload|status|configtest}"
-        RETVAL=2
+	msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|checkconfig|status}"
+	exit 3
 esac
 
 exit $RETVAL
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/h2o.git/commitdiff/d822f9701fc9ae8197ddb7f25293946c8b406e00



More information about the pld-cvs-commit mailing list