#!/sbin/openrc-run # Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 extra_commands="reload" [[ -f /etc/conf.d/slurm ]] && . /etc/conf.d/slurm depend() { local _need [[ ${SLURM_USE_MUNGE} -ne 0 ]] && _need="${_need} munged" [[ ${SLURM_USE_YPBIND} -ne 0 ]] && _need="${_need} ypbind" after logger need ${_need} } create_folder_and_set_permission() { folder=${1} # Fix permissions (/tmp is wiped at boot) if [[ "${folder}" == "/tmp" ]]; then eerror "SLURM: folder == ${folder} == /tmp" exit fi if [[ "${folder}" == "/var/tmp" ]]; then eerror "SLURM: folder == ${folder} == /var/tmp" exit fi checkpath -d -o slurm:slurm ${folder} } checkconfig() { if [ ! -e "/etc/slurm/slurmdbd.conf" ]; then eerror "Missing config /etc/slurm/slurmdbd.conf" return 1 fi # Make sure folders exists . /etc/slurm/slurm.conf folders=(${SlurmdSpoolDir} `dirname ${SlurmctldLogFile}` `dirname ${SlurmctldPidFile}` `dirname ${SlurmdLogFile}` `dirname ${SlurmdPidFile}` ${SlurmdSpoolDir} ${StateSaveLocation}) for folder in ${folders[*]}; do create_folder_and_set_permission ${folder} done } start() { ebegin "Starting slurmdb daemon" checkconfig start-stop-daemon --start --quiet --background \ --pidfile /var/run/slurm/slurmdbd.pid \ --user slurm \ --group slurm \ --exec /usr/sbin/slurmdbd -- ${SLURMD_OPTS} eend $? } stop() { ebegin "Stopping slurmdb daemon" start-stop-daemon --stop --pidfile /var/run/slurm/slurmdbd.pid eend $? } reload() { ebegin "Reloading slurmdb daemon configuration" start-stop-daemon --signal HUP --pidfile /var/run/slurm/slurmdbd.pid eend $? }