THANK YOU! Works like a champ!
On Fri, Aug 31, 2012 at 12:45 AM, Xavier Barthelemy <[email protected]>wrote:
> I had the same problem a while ago.
> I took the init file from slurm-lnll and edit it.
> i have sent it to the list a few month ago for the archives
>
>
>
> I copy it again for you my modified initfile:
>
> #!/bin/sh
> #
> # chkconfig: 345 90 10
> # description: SLURM is a simple resource management system which \
> # manages exclusive access o a set of compute \
> # resources and distributes work to those resources.
> #
> # processname: /usr/sbin/slurmd
> # pidfile: /var/run/slurm-llnl/slurmd.pid
> #
> # processname: /usr/sbin/slurmctld
> # pidfile: /var/run/slurm-llnl/slurmctld.pid
> #
> # config: /etc/default/slurm-llnl
> #
> ### BEGIN INIT INFO
> # Provides: slurm-llnl
> # 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 daemon management
> # Description: Start slurm to provide resource management
> ### END INIT INFO
>
> BASEDIR=/opt/SLURM-2.3.4
> BINDIR=$BASEDIR/bin
> CONFDIR=$BASEDIR/etc
> LIBDIR=$BASEDIR/lib
> SBINDIR=$BASEDIR/sbin
> #BINDIR=/usr/bin
> #CONFDIR=/etc/slurm-llnl
> #LIBDIR=/usr/lib
> #SBINDIR=/usr/sbin
> user=MPIuser
> if [ ! -f $BINDIR/scontrol ] ; then
> export PATH=$PATH:$BINDIR:$SBINDIR
> fi
>
> # Source slurm specific configuration
> if [ -f /etc/default/slurm-llnl ] ; then
> . /etc/default/slurm-llnl
> else
> SLURMCTLD_OPTIONS=""
> SLURMD_OPTIONS=""
> fi
>
> # Checking for slurm.conf presence
> if [ ! -f $CONFDIR/slurm.conf ] ; then
> if [ -n "$(echo $1 | grep start)" ] ; then
> echo Not starting slurm-llnl
> fi
> echo slurm.conf was not found in $CONFDIR
> echo Please follow the instructions in \
> /usr/share/doc/slurm-llnl/README.Debian.gz
> exit 0
> fi
>
>
> test -f $BINDIR/scontrol || exit 0
> DAEMONLIST=$($BINDIR/scontrol show daemons 2>/dev/null)
> if [ $? = 0 ] ; then
> for prog in $DAEMONLIST ; do
> test -f $SBINDIR/$prog || exit 0
> done
> else
> if [ -n "$(echo $1 | grep start)" ] ; then
> echo "Not starting slurm-llnl for problems in the configuration file"
> else
> echo "Problems in the configuration file"
> fi
> echo "${CONFDIR}/slurm.conf"
> echo "If upgrading from version 1.2 it is recommended that you rebuild"
> echo "your configuration file. Please read instructions in"
> echo " /usr/share/doc/slurm-llnl/README.Debian"
> echo "Otherwise use \"scontrol show daemons\" for more information"
> exit 0
> fi
>
> #Checking for lsb init function
> if [ -f /lib/lsb/init-functions ] ; then
> . /lib/lsb/init-functions
> else
> echo Can\'t find lsb init functions
> exit 1
> fi
>
> # setup library paths for slurm and munge support
> export LD_LIBRARY_PATH="$LIBDIR:$LD_LIBRARY_PATH"
> export PATH="$BINDIR:$PATH"
>
> #Function to check for cert and key presence and key vulnerabilty
> checkcertkey()
> {
> MISSING=""
> keyfile=""
> certfile=""
>
> if [ "$1" = "slurmd" ] ; then
> keyfile=$(grep JobCredentialPublicCertificate $CONFDIR/slurm.conf \
> | grep -v "^ *#")
> keyfile=${keyfile##*=}
> keyfile=${keyfile%#*}
> [ -e $keyfile ] || MISSING="$keyfile"
> elif [ "$1" = "slurmctld" ] ; then
> keyfile=$(grep JobCredentialPrivateKey $CONFDIR/slurm.conf | grep -v "^
> *#")
> keyfile=${keyfile##*=}
> keyfile=${keyfile%#*}
> [ -e $keyfile ] || MISSING="$keyfile"
> fi
>
> if [ "${MISSING}" != "" ] ; then
> echo Not starting slurm-llnl
> echo $MISSING not found
> echo Please follow the instructions in \
> /usr/share/doc/slurm-llnl/README.cryptotype-openssl
> exit 0
> fi
>
> if [ -f "$keyfile" ] && [ "$1" = "slurmctld" ] ; then
> keycheck=$(openssl-vulnkey $keyfile | cut -d : -f 1)
> if [ "$keycheck" = "COMPROMISED" ] ; then
> echo Your slurm key stored in the file $keyfile
> echo is vulnerable because has been created with a buggy openssl.
> echo Please rebuild it with openssl version \>= 0.9.8g-9
> echo More information in /usr/share/doc/slurm-llnl/README.Debian
> exit 0
> fi
> fi
> }
>
> get_daemon_description()
> {
> case $1 in
> slurmd)
> echo slurm compute node daemon
> ;;
> slurmctld)
> echo slurm central management daemon
> ;;
> *)
> echo slurm daemon
> ;;
> esac
> }
>
> start() {
> CRYPTOTYPE=$(grep CryptoType $CONFDIR/slurm.conf | grep -v "^ *#")
> CRYPTOTYPE=${CRYPTOTYPE##*=}
> CRYPTOTYPE=${CRYPTOTYPE%#*}
> if [ "$CRYPTOTYPE" = "crypto/openssl" ] ; then
> checkcertkey $1
> fi
>
> # Create run-time variable data
> mkdir -p /var/run/slurm-llnl
> # chown slurm:slurm /var/run/slurm-llnl
> chown $user:$user /var/run/slurm-llnl
> if ! [ -e /var/log/slurm_jobcomp.log ] ; then
> touch /var/log/slurm_jobcomp.log
> chown $user:$user /var/log/slurm_jobcomp.log
> fi
>
>
> # Checking if SlurmdSpoolDir is under run
> if [ "$1" = "slurmd" ] ; then
> SDIRLOCATION=$(grep SlurmdSpoolDir $CONFDIR/slurm.conf \
> | grep -v "^ *#")
> SDIRLOCATION=${SDIRLOCATION##*=}
> SDIRLOCATION=${SDIRLOCATION%#*}
> if [ "${SDIRLOCATION}" = "/var/run/slurm-llnl/slurmd" ] ; then
> if ! [ -e /var/run/slurm-llnl/slurmd ] ; then
> ln -s /var/lib/slurm-llnl/slurmd /var/run/slurm-llnl/slurmd
> fi
> fi
> fi
>
> # Checking if StateSaveLocation is under run
> if [ "$1" = "slurmctld" ] ; then
> SDIRLOCATION=$(grep StateSaveLocation $CONFDIR/slurm.conf \
> | grep -v "^ *#")
> SDIRLOCATION=${SDIRLOCATION##*=}
> SDIRLOCATION=${SDIRLOCATION%#*}
> if [ "${SDIRLOCATION}" = "/var/run/slurm-llnl/slurmctld" ] ; then
> if ! [ -e /var/run/slurm-llnl/slurmctld ] ; then
> ln -s /var/lib/slurm-llnl/slurmctld /var/run/slurm-llnl/slurmctld
> fi
> fi
> fi
>
> desc="$(get_daemon_description $1)"
> log_daemon_msg "Starting $desc" "$1"
> unset HOME MAIL USER USERNAME
> #FIXME $STARTPROC $SBINDIR/$1 $2
> STARTERRORMSG="$(start-stop-daemon --start --oknodo \
> --exec "$SBINDIR/$1" -- $2 2>&1)"
> STATUS=$?
> log_end_msg $STATUS
> if [ "$STARTERRORMSG" != "" ] ; then
> echo $STARTERRORMSG
> fi
> touch /var/lock/slurm
> }
>
> stop() {
> desc="$(get_daemon_description $1)"
> log_daemon_msg "Stopping $desc" "$1"
> STOPERRORMSG="$(start-stop-daemon --oknodo --stop -s TERM \
> --exec "$SBINDIR/$1" 2>&1)"
> STATUS=$?
> log_end_msg $STATUS
> if [ "$STOPERRORMSG" != "" ] ; then
> echo $STOPERRORMSG
> fi
> rm -f /var/lock/slurm
> }
>
> startall() {
> for PROG in $DAEMONLIST ; do
> case $PROG in
> slurmd)
> OPTVAR=$SLURMD_OPTIONS
> ;;
> slurmctld)
> OPTVAR=$SLURMCTLD_OPTIONS
> ;;
> *)
> ;;
> esac
> start $PROG $OPTVAR
> done
> }
>
> getpidfile() {
> dpidfile=`grep -i ${1}pid $CONFDIR/slurm.conf | grep -v '^ *#'`
> if [ $? = 0 ]; then
> dpidfile=${dpidfile##*=}
> dpidfile=${dpidfile%#*}
> else
> dpidfile=/var/run/${1}.pid
> fi
>
> echo $dpidfile
> }
>
> #
> # status() with slight modifications to take into account
> # instantiations of job manager slurmd's, which should not be
> # counted as "running"
> #
> slurmstatus() {
> base=${1##*/}
>
> pidfile=$(getpidfile $base)
>
> 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
> # Due to change in user id, pid file may persist
> # after slurmctld terminates
> if [ "$base" != "slurmctld" ] ; then
> echo "${base} dead but pid file exists"
> fi
> 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
> }
>
> #
> # stop slurm daemons,
> # wait for termination to complete (up to 10 seconds) before returning
> #
> slurmstop() {
> for prog in $DAEMONLIST ; do
> stop $prog
> for i in 1 2 3 4
> do
> sleep $i
> slurmstatus $prog
> if [ $? != 0 ]; then
> break
> fi
> done
> 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)
> startall
> ;;
> startclean)
> SLURMCTLD_OPTIONS="-c $SLURMCTLD_OPTIONS"
> SLURMD_OPTIONS="-c $SLURMD_OPTIONS"
> startall
> ;;
> stop)
> slurmstop
> ;;
> status)
> for prog in $DAEMONLIST ; do
> slurmstatus $prog
> done
> ;;
> restart)
> $0 stop
> $0 start
> ;;
> force-reload)
> $0 stop
> $0 start
> ;;
> condrestart)
> if [ -f /var/lock/subsys/slurm ]; then
> for prog in $DAEMONLIST ; do
> stop $prog
> start $prog
> done
> fi
> ;;
> reconfig)
> for prog in $DAEMONLIST ; do
> PIDFILE=$(getpidfile $prog)
> start-stop-daemon --stop --signal HUP --pidfile \
> "$PIDFILE" --quiet $prog
> done
> ;;
> test)
> for prog in $DAEMONLIST ; do
> echo "$prog runs here"
> done
> ;;
> *)
> echo "Usage: $0
> {start|startclean|stop|status|restart|reconfig|condrestart|test}"
> exit 1
> ;;
> esac
>
>
> 2012/8/31 Jessica Rabbet <[email protected]>
>
>> Hey guys, any ideas on the init files for ubuntu 10.04 when you build
>> from source (2.4)? Can I use the one from the ubuntu package slurm-llnl and
>> just edit to match filepaths?
>>
>>
>> On Wed, Aug 29, 2012 at 7:29 PM, Jessica Rabbet <[email protected]>wrote:
>>
>>> The munge-dev had to be installed. I've got it up and running. Got help
>>> from some guys in #hpc on irc. Thanks for the responses.
>>>
>>> On Wed, Aug 29, 2012 at 5:55 PM, Jessica Rabbet <[email protected]>wrote:
>>>
>>>> it did not detect the munge installation. What can I do to help it find
>>>> it? Munge is working fine.
>>>>
>>>> user@svr:~/Downloads/slurm-2.4.2# grep -A3 'checking for munge'
>>>> config.log
>>>> configure:21993: checking for munge installation
>>>> configure:22038: result:
>>>> configure:22042: WARNING: unable to locate munge installation
>>>> configure:22068: checking whether to enable multiple-slurmd support
>>>>
>>>>
>>>>
>>>> On Wed, Aug 29, 2012 at 5:44 PM, Jessica Rabbet <[email protected]>wrote:
>>>>
>>>>> I think I've resolved the folders and permissions issue. New errors
>>>>> now. Is there an installation guide besides the quick start admin guide?
>>>>>
>>>>> user@svr:/var/lib/kestrel/images/ngsimage1$ sudo
>>>>> /usr/local/sbin/slurmctld -Dcvvvv
>>>>>
>>>>> slurmctld: pidfile not locked, assuming no running daemon
>>>>> slurmctld: error: Configured MailProg is invalid
>>>>> slurmctld: debug3: Trying to load plugin
>>>>> /usr/local/lib/slurm/accounting_storage_none.so
>>>>> slurmctld: Accounting storage NOT INVOKED plugin loaded
>>>>> slurmctld: debug3: Success.
>>>>> slurmctld: debug3: not enforcing associations and no list was given so
>>>>> we are giving a blank list
>>>>> slurmctld: debug2: No Assoc usage file (/tmp/assoc_usage) to recover
>>>>> slurmctld: slurmctld version 2.4.2 started on cluster cluster
>>>>> slurmctld: debug3: Trying to load plugin
>>>>> /usr/local/lib/slurm/crypto_munge.so
>>>>> slurmctld: error: Couldn't find the specified plugin name for
>>>>> crypto/munge looking at all files
>>>>> slurmctld: error: can't find a plugin for type crypto/munge
>>>>> slurmctld: error: cannot resolve crypto plugin operations
>>>>> slurmctld: fatal: slurm_cred_creator_ctx_create((null)): Operation not
>>>>> permitted
>>>>>
>>>>>
>>>>
>>>
>>
>
>
> --
> « Quand le gouvernement viole les droits du peuple, l'insurrection est,
> pour le peuple et pour chaque portion du peuple, le plus sacré des droits
> et le plus indispensable des devoirs »
>
> Déclaration des droits de l'homme et du citoyen, article 35, 1793
>