38
38
# config: /etc/sysconfig/migrid
39
39
#
40
40
41
+ # This systemd marker will be overridden by sourcing 'functions' below
42
+ _use_systemctl=0
43
+
41
44
# Source function library.
42
45
. /etc/init.d/functions
43
46
@@ -114,6 +117,22 @@ kick_script() {
114
117
echo " " >> ${MIG_CODE} /server/server.stdin
115
118
}
116
119
120
+ fallback_save_pid () {
121
+ # Save daemon PID in PID_FILE if not already handled by daemon or systemd
122
+ DAEMON_PATH=" $1 "
123
+ PID_FILE=" $2 "
124
+ DAEMON_PID=" $3 "
125
+ [ " $_use_systemctl " = " 1" ] && return
126
+ [ -s " ${PID_FILE} " ] && return
127
+ if [ -z " ${DAEMON_PID} " ]; then
128
+ # Caller failed to extract child PID from daemonizing command
129
+ # echo "DEBUG: empty DAEMON_PID provided - try pgrep look up"
130
+ DAEMON_PID=$( pgrep -f ${DAEMON_PATH} )
131
+ fi
132
+ # echo "DEBUG: saving PID ${DAEMON_PID} for ${SHORT_NAME} in ${PID_FILE}"
133
+ echo " ${DAEMON_PID} " > ${PID_FILE}
134
+ }
135
+
117
136
start_script () {
118
137
check_enabled " jobs" || return
119
138
DAEMON_PATH=${MIG_SCRIPT}
@@ -122,6 +141,7 @@ start_script() {
122
141
echo -n " Starting MiG server daemon: $SHORT_NAME "
123
142
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
124
143
" ${DAEMON_PATH} >> ${MIG_LOG} /script.out 2>&1 &"
144
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
125
145
RET=$?
126
146
if [ $RET -ne 0 ]; then
127
147
failure
@@ -141,6 +161,7 @@ start_monitor() {
141
161
echo -n " Starting MiG monitor daemon: $SHORT_NAME "
142
162
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
143
163
" ${DAEMON_PATH} >> ${MIG_LOG} /monitor.out 2>&1 &"
164
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
144
165
RET2=$?
145
166
[ $RET2 ] && success
146
167
echo
@@ -155,6 +176,7 @@ start_sshmux() {
155
176
echo -n " Starting MiG sshmux daemon: $SHORT_NAME "
156
177
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
157
178
" ${DAEMON_PATH} >> ${MIG_LOG} /sshmux.out 2>&1 &"
179
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
158
180
RET2=$?
159
181
[ $RET2 ] && success
160
182
echo
@@ -170,6 +192,7 @@ start_events() {
170
192
echo -n " Starting MiG events daemon: $SHORT_NAME "
171
193
daemon +10 --user ${MIG_USER} --pidfile ${PID_FILE} \
172
194
" ${DAEMON_PATH} >> ${MIG_LOG} /events.out 2>&1 &"
195
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
173
196
RET2=$?
174
197
[ $RET2 ] && success
175
198
echo
@@ -185,6 +208,7 @@ start_cron() {
185
208
echo -n " Starting MiG cron daemon: $SHORT_NAME "
186
209
daemon +10 --user ${MIG_USER} --pidfile ${PID_FILE} \
187
210
" ${DAEMON_PATH} >> ${MIG_LOG} /cron.out 2>&1 &"
211
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
188
212
RET2=$?
189
213
[ $RET2 ] && success
190
214
echo
@@ -199,6 +223,7 @@ start_transfers() {
199
223
echo -n " Starting MiG transfers daemon: $SHORT_NAME "
200
224
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
201
225
" ${DAEMON_PATH} >> ${MIG_LOG} /transfers.out 2>&1 &"
226
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
202
227
RET2=$?
203
228
[ $RET2 ] && success
204
229
echo
@@ -213,6 +238,7 @@ start_openid() {
213
238
echo -n " Starting MiG openid daemon: $SHORT_NAME "
214
239
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
215
240
" ${DAEMON_PATH} >> ${MIG_LOG} /openid.out 2>&1 &"
241
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
216
242
RET2=$?
217
243
[ $RET2 ] && success
218
244
echo
@@ -227,6 +253,7 @@ start_sftp() {
227
253
echo -n " Starting MiG sftp daemon: $SHORT_NAME "
228
254
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
229
255
" ${DAEMON_PATH} >> ${MIG_LOG} /sftp.out 2>&1 &"
256
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
230
257
RET2=$?
231
258
[ $RET2 ] && success
232
259
echo
@@ -241,6 +268,7 @@ start_webdavs() {
241
268
echo -n " Starting MiG webdavs daemon: $SHORT_NAME "
242
269
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
243
270
" ${DAEMON_PATH} >> ${MIG_LOG} /webdavs.out 2>&1 &"
271
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
244
272
RET2=$?
245
273
[ $RET2 ] && success
246
274
echo
@@ -255,6 +283,7 @@ start_ftps() {
255
283
echo -n " Starting MiG ftps daemon: $SHORT_NAME "
256
284
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
257
285
" ${DAEMON_PATH} >> ${MIG_LOG} /ftps.out 2>&1 &"
286
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
258
287
RET2=$?
259
288
[ $RET2 ] && success
260
289
echo
@@ -269,6 +298,7 @@ start_notify() {
269
298
echo -n " Starting MiG notify daemon: $SHORT_NAME "
270
299
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
271
300
" ${DAEMON_PATH} >> ${MIG_LOG} /notify.out 2>&1 &"
301
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
272
302
RET2=$?
273
303
[ $RET2 ] && success
274
304
echo
@@ -283,6 +313,7 @@ start_imnotify() {
283
313
echo -n " Starting MiG IM notify daemon: $SHORT_NAME "
284
314
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
285
315
" ${DAEMON_PATH} >> ${MIG_LOG} /imnotify.out 2>&1 &"
316
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
286
317
RET2=$?
287
318
[ $RET2 ] && success
288
319
echo
@@ -297,6 +328,7 @@ start_vmproxy() {
297
328
echo -n " Starting MiG VM proxy daemon: $SHORT_NAME "
298
329
daemon --user ${MIG_USER} --pidfile ${PID_FILE} \
299
330
" ${DAEMON_PATH} >> ${MIG_LOG} /vmproxy.out 2>&1 &"
331
+ fallback_save_pid " $DAEMON_PATH " " $PID_FILE " " $! "
300
332
RET2=$?
301
333
[ $RET2 ] && success
302
334
echo
0 commit comments