Skip to content

Commit 5a0ac8a

Browse files
author
cmiller@zippy.cornsilk.net
committed
Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug25341/my50-bug25341
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
2 parents 50796a0 + 24e3508 commit 5a0ac8a

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

BitKeeper/etc/collapsed

+6
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@
3030
4554b3722d71SbPiI2Gx-RhbZjmuIQ
3131
4558b3d73Cxjlb7Wv1oytdSTthxDfw
3232
45771031yRCoM_ZfONdYchPvVEgLRg
33+
459a60d8rIxeTuhB3j_QsOwLGdcpng
34+
459a61c9OS8PzIsdviZJDkybJ1y1uA
35+
459a70691aYIfU2ohV0a3P5iTLpO2A
36+
459a7422KF_P7PuU3YQ5qG6ZLEVpiA
37+
459a74e4nRcXppMSBYeQQ5efDkTADg
3338
45ae6628gqKTsUFfnoNExadETVIkbA
3439
45ba4faf2oqu6eR8fqecR3LfSNcYUg
3540
45ba5238-NKl80QVXzdGo8hO9M75Xg
41+
45c0fdfb2mz6NdOIsLenJtf6_ZelTA

support-files/mysql.server.sh

+18-6
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,12 @@ parse_manager_arguments() {
143143

144144
wait_for_pid () {
145145
i=0
146-
while test $i -lt 35 ; do
146+
while test $i -lt 900 ; do
147147
sleep 1
148148
case "$1" in
149149
'created')
150150
test -s $pid_file && i='' && break
151+
kill -0 $2 || break # if the program goes away, stop waiting
151152
;;
152153
'removed')
153154
test ! -s $pid_file && i='' && break
@@ -163,8 +164,10 @@ wait_for_pid () {
163164

164165
if test -z "$i" ; then
165166
log_success_msg
167+
return 0
166168
else
167169
log_failure_msg
170+
return 1
168171
fi
169172
}
170173

@@ -277,26 +280,28 @@ case "$mode" in
277280
# Give extra arguments to mysqld with the my.cnf file. This script may
278281
# be overwritten at next upgrade.
279282
$manager --user=$user --pid-file=$pid_file >/dev/null 2>&1 &
280-
wait_for_pid created
283+
wait_for_pid created $!; return_value=$?
281284

282285
# Make lock for RedHat / SuSE
283286
if test -w /var/lock/subsys
284287
then
285288
touch /var/lock/subsys/mysqlmanager
286289
fi
290+
exit $return_value
287291
elif test -x $bindir/mysqld_safe
288292
then
289293
# Give extra arguments to mysqld with the my.cnf file. This script
290294
# may be overwritten at next upgrade.
291295
pid_file=$server_pid_file
292296
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
293-
wait_for_pid created
297+
wait_for_pid created $!; return_value=$?
294298

295299
# Make lock for RedHat / SuSE
296300
if test -w /var/lock/subsys
297301
then
298302
touch /var/lock/subsys/mysql
299303
fi
304+
exit $return_value
300305
else
301306
log_failure_msg "Couldn't find MySQL manager or server"
302307
fi
@@ -322,13 +327,14 @@ case "$mode" in
322327
echo $echo_n "Shutting down MySQL"
323328
kill $mysqlmanager_pid
324329
# mysqlmanager should remove the pid_file when it exits, so wait for it.
325-
wait_for_pid removed
330+
wait_for_pid removed; return_value=$?
326331

327332
# delete lock for RedHat / SuSE
328333
if test -f $lock_dir
329334
then
330335
rm -f $lock_dir
331336
fi
337+
exit $return_value
332338
else
333339
log_failure_msg "MySQL manager or server PID file could not be found!"
334340
fi
@@ -337,8 +343,12 @@ case "$mode" in
337343
'restart')
338344
# Stop the service and regardless of whether it was
339345
# running or not, start it again.
340-
$0 stop $other_args
341-
$0 start $other_args
346+
if $0 stop $other_args; then
347+
$0 start $other_args
348+
else
349+
log_failure_msg "Failed to stop running server, so refusing to try to start."
350+
exit 1
351+
fi
342352
;;
343353

344354
'reload')
@@ -357,3 +367,5 @@ case "$mode" in
357367
exit 1
358368
;;
359369
esac
370+
371+
exit 0

0 commit comments

Comments
 (0)