Skip to content

Commit

Permalink
sys-cluster/slurm: Fix init stuff
Browse files Browse the repository at this point in the history
Signed-off-by: Justin Lecher <[email protected]>
Package-Manager: Portage-2.3.51, Repoman-2.3.11
  • Loading branch information
jlec committed Nov 10, 2018
1 parent e96fb72 commit 9aa4f6d
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 38 deletions.
26 changes: 17 additions & 9 deletions sys-cluster/slurm/files/slurmctld.initd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

extra_commands="reload"
Expand All @@ -25,7 +25,7 @@ create_folder_and_set_permission() {
eerror "SLURM: folder == ${folder} == /var/tmp"
exit
fi
checkpath -d -o slurm:slurm ${folder}
checkpath -d -o slurm:slurm "${folder}"
}

checkconfig() {
Expand All @@ -35,20 +35,28 @@ checkconfig() {
eerror "in slurm doc directory"
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}
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 slurm control daemon"
checkconfig
start-stop-daemon --start --quiet --background \
--pidfile /var/run/slurm/slurmctld.pid \
--pidfile /run/slurm/slurmctld.pid \
--user slurm \
--group slurm \
--exec /usr/sbin/slurmctld -- ${SLURMCTLD_OPTS}
Expand All @@ -57,12 +65,12 @@ start() {

stop() {
ebegin "Stopping slurm control daemon"
start-stop-daemon --stop --pidfile /var/run/slurm/slurmctld.pid
start-stop-daemon --stop --pidfile /run/slurm/slurmctld.pid
eend $?
}

reload() {
ebegin "Reloading slurm daemon configuration"
start-stop-daemon --signal HUP --pidfile /var/run/slurm/slurmctld.pid
start-stop-daemon --signal HUP --pidfile /run/slurm/slurmctld.pid
eend $?
}
22 changes: 15 additions & 7 deletions sys-cluster/slurm/files/slurmd.initd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

extra_commands="reload"
Expand Down Expand Up @@ -37,9 +37,17 @@ checkconfig() {
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}
folders=(
${SlurmdSpoolDir}
$(dirname ${SlurmctldLogFile})
$(dirname ${SlurmctldPidFile})
$(dirname ${SlurmdLogFile})
$(dirname ${SlurmdPidFile})
${SlurmdSpoolDir}
${StateSaveLocation}
)
for folder in ${folders[@]}; do
create_folder_and_set_permission "${folder}"
done
}

Expand All @@ -51,7 +59,7 @@ start() {
# and https://computing.llnl.gov/linux/slurm/faq.html#rlimit
ulimit -l unlimited
start-stop-daemon --start --quiet --background \
--pidfile /var/run/slurm/slurmd.pid \
--pidfile /run/slurm/slurmd.pid \
--user root \
--group root \
--exec /usr/sbin/slurmd -- ${SLURMD_OPTS}
Expand All @@ -60,12 +68,12 @@ start() {

stop() {
ebegin "Stopping slurm daemon"
start-stop-daemon --stop --pidfile /var/run/slurm/slurmd.pid
start-stop-daemon --stop --pidfile /run/slurm/slurmd.pid
eend $?
}

reload() {
ebegin "Reloading slurm daemon configuration"
start-stop-daemon --signal HUP --pidfile /var/run/slurm/slurmd.pid
start-stop-daemon --signal HUP --pidfile /run/slurm/slurmd.pid
eend $?
}
22 changes: 15 additions & 7 deletions sys-cluster/slurm/files/slurmdbd.initd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

extra_commands="reload"
Expand Down Expand Up @@ -36,17 +36,25 @@ checkconfig() {

# 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}
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 \
--pidfile /run/slurm/slurmdbd.pid \
--user slurm \
--group slurm \
--exec /usr/sbin/slurmdbd -- ${SLURMD_OPTS}
Expand All @@ -55,12 +63,12 @@ start() {

stop() {
ebegin "Stopping slurmdb daemon"
start-stop-daemon --stop --pidfile /var/run/slurm/slurmdbd.pid
start-stop-daemon --stop --pidfile /run/slurm/slurmdbd.pid
eend $?
}

reload() {
ebegin "Reloading slurmdb daemon configuration"
start-stop-daemon --signal HUP --pidfile /var/run/slurm/slurmdbd.pid
start-stop-daemon --signal HUP --pidfile /run/slurm/slurmdbd.pid
eend $?
}
Original file line number Diff line number Diff line change
Expand Up @@ -88,27 +88,24 @@ src_prepare() {
default

# pids should go to /var/run/slurm
sed -e "s:/var/run/slurmctld.pid:${EPREFIX}/run/slurm/slurmctld.pid:g" \
sed \
-e 's:/tmp:/var/tmp:g' \
-e "s:/var/run/slurmctld.pid:${EPREFIX}/run/slurm/slurmctld.pid:g" \
-e "s:/var/run/slurmd.pid:${EPREFIX}/run/slurm/slurmd.pid:g" \
-e "s:StateSaveLocation=.*:StateSaveLocation=${EPREFIX}/var/spool/slurm:g" \
-e "s:SlurmdSpoolDir=.*:SlurmdSpoolDir=${EPREFIX}/var/spool/slurm/slurmd:g" \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed for /var/run/slurmctld.pid"
sed -i "s:/var/run/slurmdbd.pid:${EPREFIX}/run/slurm/slurmdbd.pid:g" \
|| die "Can't sed for /var/run/slurmctld.pid"
sed \
-e "s:/var/run/slurmdbd.pid:${EPREFIX}/run/slurm/slurmdbd.pid:g" \
-i "${S}/etc/slurmdbd.conf.example" \
|| die "Can't sed for /var/run/slurmdbd.pid"
# also state dirs are in /var/spool/slurm
sed -e "s:StateSaveLocation=*.:StateSaveLocation=${EPREFIX}/var/spool/slurm:g" \
-e "s:SlurmdSpoolDir=*.:SlurmdSpoolDir=${EPREFIX}/var/spool/slurm/slurmd:g" \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed ${S}/etc/slurm.conf.example for StateSaveLocation=*. or SlurmdSpoolDir=*"
# and tmp should go to /var/tmp/slurm
sed -e 's:/tmp:/var/tmp:g' \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed for StateSaveLocation=*./tmp"
|| die "Can't sed for /var/run/slurmdbd.pid"
# gentooify systemd services
sed -e 's:sysconfig/.*:conf.d/slurm:g' \
sed \
-e 's:sysconfig/.*:conf.d/slurm:g' \
-e 's:var/run/:run/slurm/:g' \
-i "${S}/etc"/*.service.in \
|| die "Can't sed systemd services for sysconfig or var/run/"
|| die "Can't sed systemd services for sysconfig or var/run/"

hprefixify auxdir/{ax_check_zlib,x_ac_{lz4,ofed,munge}}.m4
eautoreconf
Expand Down

0 comments on commit 9aa4f6d

Please sign in to comment.