summaryrefslogtreecommitdiff
path: root/debian/patches/38_scripts__mysqld_safe.sh__signals.patch
blob: be06efb01f250df5459f0ed364fcf188bbd88f03 (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
Author: Christian Hammers  <ch@debian.org>
Subject: Executes /etc/init.d/mysql on signals
 Note if you check the bug report on mysql.com the patch is accepted
 as interesting but they were waiting on Christian Hammers to sign an SCA.
 Meanwhile this bug report fell off in the transition from 5.0 to 5.1.
Bug: http://bugs.mysql.com/bug.php?id=31361
Debian-Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=527623
Last-Update: 2012-03-07
Reviewed-by: Nicholas Bamber <nicholas@periapt.co.uk>

--- a/scripts/mysqld_safe.sh
+++ b/scripts/mysqld_safe.sh
@@ -29,8 +29,6 @@
 syslog_tag_mysqld=mysqld
 syslog_tag_mysqld_safe=mysqld_safe
 
-trap '' 1 2 3 15			# we shouldn't let anyone kill us
-
 umask 007
 
 defaults=
@@ -132,7 +130,7 @@
       # 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):" \
@@ -711,6 +709,13 @@
 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