Init system for Slackware only

Sat, 16 Mar 2024 11:06:16 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 16 Mar 2024 11:06:16 +0100
changeset 639
276ee5b61348
parent 638
186f0c2d3e76
child 640
0f6daacdd597

Init system for Slackware only

tools/Makefile file | annotate | diff | comparison | revisions
tools/default file | annotate | diff | comparison | revisions
tools/init.debian file | annotate | diff | comparison | revisions
tools/init.slackware file | annotate | diff | comparison | revisions
tools/rc.slackware file | annotate | diff | comparison | revisions
--- a/tools/Makefile	Sat Mar 16 10:51:41 2024 +0100
+++ b/tools/Makefile	Sat Mar 16 11:06:16 2024 +0100
@@ -2,7 +2,7 @@
 
 include ../Makefile.global
 
-OTHER		= Makefile init.debian init.slackware
+OTHER		= Makefile rc.slackware default
 
 #############################################################################
 
@@ -16,19 +16,9 @@
 		rm -f ${TARGET} *.o *.h~ *.c~ core filelist Makefile.bak
 
 install:
-		@if [ -x /lib/systemd/systemd ]; then \
-			mkdir -p ${DESTDIR}/etc/init.d ; \
-			${INSTALL} -c -g root -o root -m 0755 init.debian ${DESTDIR}/etc/init.d/thermferm ; \
-			echo "${INSTALL} -c -g root -o root -m 0755 init.debian ${DESTDIR}/etc/init.d/thermferm" ; \
-			[ -x /bin/systemctl ] && /bin/systemctl daemon-reload ; \
-			echo "[ -x /bin/systemctl ] && /bin/systemctl daemon-reload" ; \
-		elif [ -f /etc/slackware-version ]; then \
-			mkdir -p ${DESTDIR}/etc/rc.d ; \
-			${INSTALL} -c -g root -o root -m 0755 init.slackware ${DESTDIR}/etc/rc.d/rc.thermferm ; \
-			echo "${INSTALL} -c -g root -o root -m 0755 init.slackware ${DESTDIR}/etc/rc.d/rc.thermferm" ; \
-		else \
-			echo "Unsupported distribution" ; \
-		fi
+		mkdir -p ${DESTDIR}/etc/rc.d ${DESTDIR}/etc/default
+		${INSTALL} -c -g root -o root -m 0755 rc.slackware ${DESTDIR}/etc/rc.d/rc.thermferm
+		${INSTALL} -c -g root -o root -m 0644 default ${DESTDIR}/etc/default/thermferm
 
 filelist:	Makefile
 		BASE=`pwd`; \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/default	Sat Mar 16 11:06:16 2024 +0100
@@ -0,0 +1,8 @@
+#
+# Define default options for thermferm
+#
+
+THERMFERM_BIN="/usr/bin/thermferm"
+
+# Use the next if running the simulator
+#THERMFERM_BIN="/usr/bin/thermferm-sim"
--- a/tools/init.debian	Sat Mar 16 10:51:41 2024 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides:          thermferm
-# Required-Start:    $local_fs $remote_fs $network $syslog
-# Required-Stop:     $local_fs $remote_fs $network $syslog
-# Should-Start:      mosquitto
-# Should-Stop:       mosquitto
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
-# Short-Description: Thermferm beer fermenter initscript
-# Description:       This program controls temperature controlled chambers
-#                    that are used to ferment beer.
-### END INIT INFO
-
-# Author: Michiel Broek <mbroek@mbse.eu>
-
-# Do NOT "set -e"
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="MBSE thermferm"
-NAME=thermferm
-DAEMON=/usr/local/bin/$NAME
-#DAEMON_ARGS="--options args"
-PIDFILE=/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Exit if the package is not installed
-[ -x "$DAEMON" ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-# 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
-	#start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 1
-	#start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2
-	$DAEMON
-	# Add code here, if necessary, that waits for the process to be ready
-	# to handle requests from services started subsequently which depend
-	# on this one.  As a last resort, sleep for some time.
-}
-
-#
-# 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/30/KILL/5 --pidfile $PIDFILE --name $NAME
-	RETVAL="$?"
-	[ "$RETVAL" = 2 ] && return 2
-	# Wait for children to finish too if this is a daemon that forks
-	# and if the daemon is only ever run from this initscript.
-	# If the above conditions are not satisfied then add some other code
-	# that waits for the process to drop all resources that could be
-	# needed by services started subsequently.  A last resort is to
-	# sleep for some time.
-	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
-	[ "$?" = 2 ] && return 2
-	# Many daemons don't delete their pidfiles when they exit.
-	rm -f $PIDFILE
-	return "$RETVAL"
-}
-
-#
-# Function that sends a SIGHUP to the daemon/service
-#
-do_reload() {
-	#
-	# If the daemon can reload its configuration without
-	# restarting (for example, when it is sent a SIGHUP),
-	# then implement that here.
-	#
-	start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
-	return 0
-}
-
-case "$1" in
-  start)
-	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
-	do_start
-	case "$?" in
-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-	esac
-	;;
-  stop)
-	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
-	do_stop
-	case "$?" in
-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
-	esac
-	;;
-  status)
-	status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
-	;;
-  #reload|force-reload)
-	#
-	# If do_reload() is not implemented then leave this commented out
-	# and leave 'force-reload' as an alias for 'restart'.
-	#
-	#log_daemon_msg "Reloading $DESC" "$NAME"
-	#do_reload
-	#log_end_msg $?
-	#;;
-  restart|force-reload)
-	#
-	# If the "reload" option is implemented then remove the
-	# 'force-reload' alias
-	#
-	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|restart|reload|force-reload}" >&2
-	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
-	exit 3
-	;;
-esac
-
-:
--- a/tools/init.slackware	Sat Mar 16 10:51:41 2024 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#!/bin/bash
-#
-# thermferm init script for Slackware.
-#
-# Copyright 2022-2024 Michiel Broek, the Netherlands.
-
-PIDFILE=/run/thermferm.pid
-
-case "$1" in
-  start)
-    echo -n "Starting Fermentation Controller: "
-    if [ -f ${PIDFILE} ]; then
-  	echo "already running."
-    else
-	/usr/bin/thermferm
-        echo "done."
-    fi
-    ;;
-
-  stop)
-    echo -n "Stopping Fermentation Controller: "
-    if [ -f ${PIDFILE} ]; then
-      kill $(cat ${PIDFILE})
-      echo "done."
-    else
-      echo "wasn't running."
-    fi
-    ;;
-
-  restart)
-    $0 stop
-    sleep 2
-    $0 start
-    ;;
-
-  *)
-    echo "usage: $0 {start|stop|restart}"
-esac
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/rc.slackware	Sat Mar 16 11:06:16 2024 +0100
@@ -0,0 +1,44 @@
+#!/bin/bash
+#
+# thermferm init script for Slackware.
+#
+# Copyright 2022-2024 Michiel Broek, the Netherlands.
+
+# Source default settings:
+if [ -r /etc/default/thermferm ]; then
+  . /etc/default/thermferm
+fi
+
+PIDFILE=/run/thermferm.pid
+
+case "$1" in
+  start)
+    echo -n "Starting Fermentation Controller: "
+    if [ -f ${PIDFILE} ]; then
+  	echo "already running."
+    else
+	${THERMFERM_BIN}
+        echo "done."
+    fi
+    ;;
+
+  stop)
+    echo -n "Stopping Fermentation Controller: "
+    if [ -f ${PIDFILE} ]; then
+      kill $(cat ${PIDFILE})
+      echo "done."
+    else
+      echo "wasn't running."
+    fi
+    ;;
+
+  restart)
+    $0 stop
+    sleep 2
+    $0 start
+    ;;
+
+  *)
+    echo "usage: $0 {start|stop|restart}"
+esac
+

mercurial