blob: 8f309d5b860539cff295600de119e92bc7959f1a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
opts="start stop restart"
# Torque moved stuff from /usr/ to /var as of 2.0.0, so we check...
PBS_CFG_DIR_DEFAULT="/var/spool/PBS"
if [ -z "${PBS_CFG_DIRECTORY}" ]; then
if [ -d "/usr/spool/PBS" -a -d "/var/spool/PBS" ]; then
ewarn "WARNING! Both /usr/spool/PBS and /var/spool/PBS exist,"
ewarn " but PBS_CFG_DIRECTORY isn't defined in /etc/conf.d/pbs."
ewarn " Defaulting to ${PBS_CFG_DIR_DEFAULT}."
PBS_CFG_DIRECTORY="${PBS_CFG_DIR_DEFAULT}"
elif [ -d "/usr/spool/PBS" ]; then
PBS_CFG_DIRECTORY="/usr/spool/PBS"
elif [ -d "/var/spool/PBS" ]; then
PBS_CFG_DIRECTORY="/var/spool/PBS"
else
eerror "Neither /usr/spool/PBS nor /var/spool/PBS exists."
eerror "Are you sure you've actually installed an ebuild that provides virtual/pbs?"
eerror "Try emerging sys-cluster/torque or sys-cluster/openpbs."
exit 1
fi
fi
SERVERPID="${PBS_CFG_DIRECTORY}/server_priv/server.lock"
MOMPID="${PBS_CFG_DIRECTORY}/mom_priv/mom.lock"
SCHEDULER="${PBS_SCHEDULER:=pbs_sched}"
SCHEDPID="${PBS_SCHEDULER_PID:=${PBS_CFG_DIRECTORY}/sched_priv/sched.lock}"
depend() {
need net
}
checkconfig() {
HOSTNAME="`hostname`"
if [ ! -e ${PBS_CFG_DIRECTORY}/server_name ] ; then
eerror "Missing config file ${PBS_CFG_DIRECTORY}/server_name"
return 1
else
PBS_SERVER_NAME="`cat ${PBS_CFG_DIRECTORY}/server_name`"
if [ "x${HOSTNAME}" == "x${PBS_SERVER_NAME}" ] ; then
PBS_START_SERVER=1;
else
PBS_START_SERVER=0;
fi
fi
if [ ! -e ${PBS_CFG_DIRECTORY}/mom_priv/config ] ; then
eerror "Missing config file ${PBS_CFG_DIRECTORY}/mom_priv/config"
return 1
elif [ "${PBS_START_SERVER}" -eq 1 ] ; then
PBS_START_MOM="${PBS_SERVER_AND_MOM:=1}"
else
PBS_START_MOM="1"
fi
if [ "${PBS_START_SERVER}" -eq 1 ] ; then
if [ ! -e ${PBS_CFG_DIRECTORY}/server_priv/nodes ] ; then
eerror "The startup script has detected this node is a server"
eerror "from the file ${PBS_CFG_DIRECTORY}/server_name,"
eerror "but the config file ${PBS_CFG_DIRECTORY}/server_priv/nodes is missing"
return 1
fi
fi
if [ "${PBS_START_SERVER}" -eq 1 ] ; then
SCHEDPATH="`which ${SCHEDULER}`"
SCHEDFILE="`basename ${SCHEDPATH}`"
if [ -z "${SCHEDFILE}" ]; then
eerror "No scheduler defined and can't find pbs_sched"
return 1
elif [ ! -x ${SCHEDPATH} ] ; then
eerror "Scheduler defined but can't be executed"
return 1
fi
fi
}
start() {
checkconfig || return 1
if [ "${PBS_START_MOM}" -gt 0 ] ; then
ebegin "Starting pbs_mom"
start-stop-daemon --start --pidfile ${MOMPID} \
--startas /usr/sbin/pbs_mom
fi
if [ "${PBS_START_SERVER}" -gt 0 ] ; then
ebegin "Starting pbs_server"
start-stop-daemon --start --quiet --pidfile ${SERVERPID} \
--startas /usr/sbin/pbs_server
ebegin "Starting ${SCHEDFILE}"
start-stop-daemon --start --quiet --pidfile ${SCHEDPID} \
--startas ${SCHEDPATH}
fi
eend $?
}
stop() {
checkconfig || return 1
ret1=0
ret2=0
ret3=0
if [ -e ${MOMPID} ] ; then
ebegin "Stopping pbs_mom"
start-stop-daemon --stop --pidfile ${MOMPID}
ret1=$?
rm -f ${MOMPID}
fi
if [ -e ${SERVERPID} ] ; then
ebegin "Stopping pbs_server"
qterm -t immediate
ret2=$?
rm -f ${SERVERPID}
fi
if [ -e ${SCHEDPID} ] ; then
ebegin "Stopping ${SCHEDFILE}"
start-stop-daemon --stop --pidfile ${SCHEDPID}
ret3=$?
rm -f ${SCHEDPID}
fi
let ret=$(( $ret1 + $ret2 + $ret3 ))
eend $ret
}
|