sys-cluster/slurm: use #!/sbin/openrc-run instead of #!/sbin/runscript
[gentoo.git] / sys-cluster / slurm / files / slurmctld.initd
1 #!/sbin/openrc-run
2 # Copyright 1999-2012 Gentoo Foundation
3 # Distributed under the terms of the GNU General Public License v2
4 # $Id$
5
6 extra_commands="reload"
7
8 [[ -f /etc/conf.d/slurm ]] && . /etc/conf.d/slurm
9
10 depend() {
11         local _need="net"
12         [[ ${SLURM_USE_MUNGE} -ne 0 ]] && _need="${_need} munged"
13         [[ ${SLURM_USE_YPBIND} -ne 0 ]] && _need="${_need} ypbind"
14         after logger slurmdbd
15         need ${_need}
16 }
17
18 create_folder_and_set_permission() {
19     folder=${1}
20     # Fix permissions (/tmp is wiped at boot)
21     if [[ "${folder}" == "/tmp" ]]; then
22         eerror "SLURM: folder == ${folder} == /tmp"
23         exit
24     fi
25     if [[ "${folder}" == "/var/tmp" ]]; then
26         eerror "SLURM: folder == ${folder} == /var/tmp"
27         exit
28     fi
29     checkpath -d -o slurm:slurm ${folder}
30 }
31
32 checkconfig() {
33         if [ ! -e "/etc/slurm/slurm.conf" ]; then
34                 eerror "Missing config /etc/slurm/slurm.conf"
35                 eerror "Customize sample one or generate new by configurator.html"
36                 eerror "in slurm doc directory"
37                 return 1
38         fi
39         
40         # Make sure folders exists
41         . /etc/slurm/slurm.conf
42         folders=(${SlurmdSpoolDir} `dirname ${SlurmctldLogFile}` `dirname ${SlurmctldPidFile}` `dirname ${SlurmdLogFile}` `dirname ${SlurmdPidFile}` ${SlurmdSpoolDir} ${StateSaveLocation})
43         for folder in ${folders[*]}; do
44                 create_folder_and_set_permission ${folder}
45         done
46 }
47
48 start() {
49         ebegin "Starting slurm control daemon"
50         checkconfig
51         start-stop-daemon --start --quiet --background \
52                 --pidfile /var/run/slurm/slurmctld.pid \
53                 --user slurm \
54                 --group slurm \
55                 --exec /usr/sbin/slurmctld -- ${SLURMCTLD_OPTS}
56         eend $?
57 }
58
59 stop() {
60         ebegin "Stopping slurm control daemon"
61         start-stop-daemon --stop --pidfile /var/run/slurm/slurmctld.pid
62         eend $?
63 }
64
65 reload() {
66         ebegin "Reloading slurm daemon configuration"
67         start-stop-daemon --signal HUP --pidfile /var/run/slurm/slurmctld.pid
68         eend $?
69 }