| #!/bin/bash |
| # |
| # chkconfig: 345 90 10 |
| # description: SLURMDBD is a database server interface for \ |
| # SLURM (Simple Linux Utility for Resource Management). |
| # |
| # processname: @sbindir@/slurmdbd |
| # pidfile: /var/run/slurmdbd.pid |
| # |
| # config: /etc/sysconfig/slurm |
| # |
| ### BEGIN INIT INFO |
| # Provides: slurmbd |
| # Required-Start: $remote_fs $syslog $network munge |
| # Required-Stop: $remote_fs $syslog $network munge |
| # Should-Start: $named |
| # Should-Stop: $named |
| # Default-Start: 2 3 4 5 |
| # Default-Stop: 0 1 6 |
| # Short-Description: SLURM database daemon |
| # Description: Start slurm to provide database server for SLURM |
| ### END INIT INFO |
| |
| CONFDIR="@sysconfdir@" |
| LIBDIR="@libdir@" |
| SBINDIR="@sbindir@" |
| |
| #Source function library. |
| if [ -f /etc/rc.status ]; then |
| . /etc/rc.status |
| SUSE=1 |
| STARTPROC=startproc |
| |
| rc_reset |
| else |
| if [ ! -f /etc/rc.d/init.d/functions ]; then |
| echo "Could not find /etc/rc.d/init.d/functions. Is some other daemon launch mechanism used?" |
| exit 1 |
| fi |
| . /etc/rc.d/init.d/functions |
| SUSE=0 |
| STARTPROC=daemon |
| |
| function rc_status() { |
| RETVAL=$? |
| } |
| function rc_exit () { |
| exit $RETVAL |
| } |
| RETVAL=0 |
| fi |
| |
| # We can not use a starter program without losing environment |
| # variables that are critical on Blue Gene systems |
| if [ -d /bgl/BlueLight/ppcfloor ]; then |
| STARTPROC="" |
| fi |
| |
| # Source slurm specific configuration |
| # SLURMDBD_OPTIONS defines slurmdbd command line options. See "man slurmdbd" |
| if [ -f /etc/sysconfig/slurm ] ; then |
| . /etc/sysconfig/slurm |
| else |
| SLURMDBD_OPTIONS="" |
| fi |
| |
| if [ ! -f $CONFDIR/slurmdbd.conf ]; then |
| echo "Could not find $CONFDIR/slurmdbd.conf. Bad path?" |
| exit 1 |
| fi |
| |
| # setup library paths for slurm and munge support |
| export LD_LIBRARY_PATH=$LIBDIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} |
| |
| start() { |
| prog=$1 |
| shift |
| echo -n "starting $prog: " |
| unset HOME MAIL USER USERNAME |
| $STARTPROC $SBINDIR/$prog $SLURMDBD_OPTIONS |
| rc_status -v |
| echo |
| touch /var/lock/subsys/slurmdbd |
| } |
| |
| stop() { |
| echo -n "stopping $1: " |
| killproc $1 -TERM |
| rc_status -v |
| echo |
| rm -f /var/lock/subsys/slurmdbd |
| } |
| |
| slurmstatus() { |
| local base=${1##*/} |
| local pid |
| local rpid |
| local pidfile |
| |
| pidfile=`grep -i pidfile $CONFDIR/slurmdbd.conf | grep -v '^ *#'` |
| if [ $? = 0 ]; then |
| pidfile=${pidfile##*=} |
| pidfile=${pidfile%#*} |
| pidfile=${pidfile//\"/} |
| else |
| pidfile=/var/run/slurmdbd.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" = "slurmdbd" -a "$pid" != "" ] ; then |
| echo $"${base} (pid $pid) is running..." |
| return 0 |
| fi |
| |
| echo $"${base} is stopped" |
| |
| return 3 |
| } |
| |
| # |
| # stop slurm daemons, |
| # wait for termination to complete (up to 10 seconds) before returning |
| # |
| slurmstop() { |
| stop $1 |
| |
| for i in 1 2 3 4 |
| do |
| sleep $i |
| slurmstatus $1 |
| if [ $? != 0 ]; then |
| break |
| fi |
| done |
| } |
| # |
| # 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) |
| start slurmdbd |
| ;; |
| stop) |
| slurmstop slurmdbd |
| ;; |
| status) |
| slurmstatus slurmdbd |
| rc_status -v |
| ;; |
| restart) |
| $0 stop |
| $0 start |
| ;; |
| condrestart) |
| if [ -f /var/lock/subsys/slurm ]; then |
| stop slurmdbd |
| start slurmdbd |
| fi |
| ;; |
| reconfig|reload) |
| echo -n $"Reloading slurmdbd daemon configuration: " |
| killproc slurmdbd -HUP |
| echo |
| ;; |
| *) |
| echo "Usage: $0 {start|stop|status|restart|condrestart|reconfig}" |
| exit 1 |
| ;; |
| esac |
| |
| rc_exit |