summaryrefslogtreecommitdiff
path: root/scripts/mysqld_safe.sh
diff options
context:
space:
mode:
authorChristian Hammers <ch@debian.org>2018-04-10 19:31:18 +0300
committerOtto Kekäläinen <otto@mariadb.org>2018-05-28 11:32:21 +0300
commit64094e12c0e265e4e41ff1d780598ba945344dc6 (patch)
tree3e6746990af8835df6f677b901247949b2cc58b8 /scripts/mysqld_safe.sh
parent58721c3e38f1d5cd9261c6da205126cf0ae2ab24 (diff)
downloadmariadb-git-64094e12c0e265e4e41ff1d780598ba945344dc6.tar.gz
Apply debian/patches/38_scripts__mysqld_safe.sh__signals.dpatch
We have carried along this patch as a patch inside our sources since 2012 (commit cfd4fcb0bc3d469dfca74dae30d17250d65fdd91). This same patch has been used also in MySQL packaging at Oracle and in downstream Debian.org packages for both MySQL and MariaDB. The validity of this has thus been vetted in production for years and the review done now did not find otherwise. Code contributed to Oracle with http://forge.mysql.com/wiki/Sun_Contributor_Agreement Reported as http://bugs.mysql.com/bug.php?id=31361
Diffstat (limited to 'scripts/mysqld_safe.sh')
-rw-r--r--scripts/mysqld_safe.sh10
1 files changed, 8 insertions, 2 deletions
diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh
index 5797bdc68d7..2abdfd7faf5 100644
--- a/scripts/mysqld_safe.sh
+++ b/scripts/mysqld_safe.sh
@@ -36,7 +36,6 @@ skip_err_log=0
syslog_tag_mysqld=mysqld
syslog_tag_mysqld_safe=mysqld_safe
-trap '' 1 2 3 15 # we shouldn't let anyone kill us
# MySQL-specific environment variable. First off, it's not really a umask,
# it's the desired mode. Second, it follows umask(2), not umask(3) in that
@@ -160,7 +159,7 @@ eval_log_error () {
# sed buffers output (only GNU sed supports a -u (unbuffered) option)
# which means that messages may not get sent to syslog until the
# mysqld process quits.
- cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error"
+ cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error & wait"
;;
*)
echo "Internal program error (non-fatal):" \
@@ -878,6 +877,13 @@ then
fi
#
+# From now on, we catch signals to do a proper shutdown of mysqld
+# when signalled to do so.
+#
+trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf refresh & wait' 1 # HUP
+trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf shutdown' 2 3 15 # INT QUIT and TERM
+
+#
# Uncomment the following lines if you want all tables to be automatically
# checked and repaired during startup. You should add sensible key_buffer
# and sort_buffer values to my.cnf to improve check performance or require