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