From 2d73b36df192d896943c68f9183d5751ad2afd17 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 26 Oct 2004 00:56:21 +0000
Subject: [PATCH] Added init.d.slurm.suse file.

---
 Makefile.am           |   1 +
 etc/init.d.slurm.suse | 177 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 178 insertions(+)
 create mode 100755 etc/init.d.slurm.suse

diff --git a/Makefile.am b/Makefile.am
index db37685fbd9..85cf16fac45 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,6 +8,7 @@ EXTRA_DIST =			\
 	Make-rpm.mk		\
 	etc/slurm.conf.example	\
 	etc/init.d.slurm	\
+	etc/init.d.slurm.suse	\
 	etc/ptrace.patch	\
 	autogen.sh		\
 	slurm.spec		\
diff --git a/etc/init.d.slurm.suse b/etc/init.d.slurm.suse
new file mode 100755
index 00000000000..383f4001173
--- /dev/null
+++ b/etc/init.d.slurm.suse
@@ -0,0 +1,177 @@
+#!/bin/bash
+#
+# chkconfig: 345 90 10
+# description: SLURM is a simple resource management system which \
+#              manages exclusive access to a set of compute \
+#              resources and distributes work to those resources.
+#
+# processname: /usr/sbin/slurmd 
+# pidfile: /var/run/slurmd.pid
+#
+# processname: /usr/sbin/slurmctld
+# pidfile: /var/run/slurmctld.pid
+#
+# config: /etc/sysconfig/slurm
+#
+### BEGIN INIT INFO
+# Provides:          slurm
+# Required-Start:    $local_fs $syslog $network $named munge
+# Required-Stop:     $local_fs $syslog $network $named munge
+# Default-Start:     3 5
+# Default-Stop:      0 1 2 6
+# Short-Description: slurm daemon management
+# Description:       Start slurm to provide resource management
+### END INIT INFO
+
+BINDIR=/usr/bin
+CONFDIR=/etc/slurm
+LIBDIR=/usr/lib
+SBINDIR=/usr/sbin
+
+# Source function library.
+[ -f /etc/rc.status ] || exit 0
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+# Source slurm specific configuration
+if [ -f /etc/sysconfig/slurm ] ; then
+    . /etc/sysconfig/slurm
+else
+    SLURMCTLD_OPTIONS=""
+    SLURMD_OPTIONS=""
+fi
+
+[ -f $CONFDIR/slurm.conf ] || exit 1
+
+# setup library paths for slurm and munge support
+export LD_LIBRARY_PATH="$LIBDIR:$LD_LIBRARY_PATH"
+
+start() {
+    echo -n "starting $1: " 
+    unset HOME MAIL USER USERNAME 
+    startproc $SBINDIR/$1 $2
+    rc_status -v
+    echo
+    touch /var/lock/subsys/slurm
+}
+
+stop() { 
+    echo -n "stopping $1: "
+    killproc $1 -TERM
+    rc_status -v
+    echo
+    rm -f /var/lock/subsys/slurm
+}
+
+startall() {
+    for prog in `$BINDIR/scontrol show daemons`; do 
+        optvar=`echo ${prog}_OPTIONS | tr "a-z" "A-Z"`
+        start $prog ${!optvar} 
+    done
+}
+
+# status() with slight modifications to take into account
+# instantiations of job manager slurmd's, which should not be
+# counted as "running"
+#
+slurmstatus() {
+    local base=${1##*/}
+    local pid
+    local rpid
+    local pidfile
+
+    pidfile=`grep -i ${base}pid $CONFDIR/slurm.conf | grep -v '^ *#'`
+    if [ $? = 0 ]; then
+        pidfile=${pidfile##*=}
+        pidfile=${pidfile%#*}
+    else
+        pidfile=/var/run/${base}.pid
+    fi
+
+    pid=`pidof -o $$ -o $$PPID -o %PPID -x $1 || \
+         pidof -o $$ -o $$PPID -o %PPID -x ${base}`
+
+    if [ -f $pidfile ]; then
+        read rpid < $pidfile
+        if [ "$rpid" != "" -a "$pid" != "" ]; then
+            for i in $pid ; do
+                if [ "$i" = "$rpid" ]; then 
+                    echo $"${base} (pid $pid) is running..."
+                    return 0
+                fi     
+            done
+        elif [ "$rpid" != "" -a "$pid" = "" ]; then
+            echo $"${base} dead but pid file exists"
+            return 1
+        fi 
+
+    fi
+
+    if [ "$base" = "slurmctld" -a "$pid" != "" ] ; then
+        echo $"${base} (pid $pid) is running..."
+        return 0
+    fi
+     
+    echo $"${base} is stopped"
+    
+    return 3
+}
+
+
+#
+# The pathname substitution in daemon command assumes prefix and
+# exec_prefix are same.  This is the default, unless the user requests
+# otherwise.
+#
+# Any node can be a slurm controller and/or server.
+#
+case "$1" in
+    start)
+	startall
+        ;;
+    startclean)
+        SLURMCTLD_OPTIONS="-c $SLURMCTLD_OPTIONS"
+        SLURMD_OPTIONS="-c $SLURMD_OPTIONS"
+        startall
+        ;;
+    stop)
+	for prog in `$BINDIR/scontrol show daemons`; do
+	    stop $prog
+	done
+        ;;
+    status)
+	for prog in `$BINDIR/scontrol show daemons`; do
+	   slurmstatus $prog
+	done
+        ;;
+    restart)
+        $0 stop
+	$0 start
+        ;;
+    condrestart)
+        if [ -f /var/lock/subsys/slurm ]; then
+            for prog in `$BINDIR/scontrol show daemons`; do
+                 stop $prog
+                 start $prog
+            done
+        fi
+        ;;
+    reconfig)
+	for prog in `$BINDIR/scontrol show daemons`; do
+	    killproc $prog -HUP
+	done
+	;;
+    test)
+	for prog in `$BINDIR/scontrol show daemons`; do   
+	    echo "$prog runs here"
+	done
+	;;
+    *)
+        echo "Usage: $0 {start|startclean|stop|status|restart|reconfig|condrestart|test}"
+        exit 1
+        ;;
+esac
+
+rc_exit
-- 
GitLab