summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitKeeper/etc/collapsed6
-rw-r--r--support-files/mysql.server.sh24
2 files changed, 24 insertions, 6 deletions
diff --git a/BitKeeper/etc/collapsed b/BitKeeper/etc/collapsed
index 951d894c5b6..bf701e78a5c 100644
--- a/BitKeeper/etc/collapsed
+++ b/BitKeeper/etc/collapsed
@@ -30,3 +30,9 @@
4554b3722d71SbPiI2Gx-RhbZjmuIQ
4558b3d73Cxjlb7Wv1oytdSTthxDfw
45771031yRCoM_ZfONdYchPvVEgLRg
+459a60d8rIxeTuhB3j_QsOwLGdcpng
+459a61c9OS8PzIsdviZJDkybJ1y1uA
+459a70691aYIfU2ohV0a3P5iTLpO2A
+459a7422KF_P7PuU3YQ5qG6ZLEVpiA
+459a74e4nRcXppMSBYeQQ5efDkTADg
+45c0fdfb2mz6NdOIsLenJtf6_ZelTA
diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh
index f5fa4e9ed9a..9258fcf10c2 100644
--- a/support-files/mysql.server.sh
+++ b/support-files/mysql.server.sh
@@ -143,11 +143,12 @@ parse_manager_arguments() {
wait_for_pid () {
i=0
- while test $i -lt 35 ; do
+ while test $i -lt 900 ; do
sleep 1
case "$1" in
'created')
test -s $pid_file && i='' && break
+ kill -0 $2 || break # if the program goes away, stop waiting
;;
'removed')
test ! -s $pid_file && i='' && break
@@ -163,8 +164,10 @@ wait_for_pid () {
if test -z "$i" ; then
log_success_msg
+ return 0
else
log_failure_msg
+ return 1
fi
}
@@ -277,26 +280,28 @@ case "$mode" in
# Give extra arguments to mysqld with the my.cnf file. This script may
# be overwritten at next upgrade.
$manager --user=$user --pid-file=$pid_file >/dev/null 2>&1 &
- wait_for_pid created
+ wait_for_pid created $!; return_value=$?
# Make lock for RedHat / SuSE
if test -w /var/lock/subsys
then
touch /var/lock/subsys/mysqlmanager
fi
+ exit $return_value
elif test -x $bindir/mysqld_safe
then
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
pid_file=$server_pid_file
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
- wait_for_pid created
+ wait_for_pid created $!; return_value=$?
# Make lock for RedHat / SuSE
if test -w /var/lock/subsys
then
touch /var/lock/subsys/mysql
fi
+ exit $return_value
else
log_failure_msg "Couldn't find MySQL manager or server"
fi
@@ -322,13 +327,14 @@ case "$mode" in
echo $echo_n "Shutting down MySQL"
kill $mysqlmanager_pid
# mysqlmanager should remove the pid_file when it exits, so wait for it.
- wait_for_pid removed
+ wait_for_pid removed; return_value=$?
# delete lock for RedHat / SuSE
if test -f $lock_dir
then
rm -f $lock_dir
fi
+ exit $return_value
else
log_failure_msg "MySQL manager or server PID file could not be found!"
fi
@@ -337,8 +343,12 @@ case "$mode" in
'restart')
# Stop the service and regardless of whether it was
# running or not, start it again.
- $0 stop $other_args
- $0 start $other_args
+ if $0 stop $other_args; then
+ $0 start $other_args
+ else
+ log_failure_msg "Failed to stop running server, so refusing to try to start."
+ exit 1
+ fi
;;
'reload')
@@ -357,3 +367,5 @@ case "$mode" in
exit 1
;;
esac
+
+exit 0