Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions debian/mariadb-server-10.1.mysql.upstart
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
description "MariaDB 10.1 Server"
author "Mario Limonciello <[email protected]>"

start on runlevel [2345]
stop on runlevel [016]

respawn
respawn limit 2 5

env HOME=/etc/mysql
umask 007

# The default of 5 seconds is too low for mysql which needs to flush buffers
kill timeout 300

pre-start script
## Fetch a particular option from mysql's invocation.
# Usage: void mysqld_get_param option
mysqld_get_param() {
/usr/sbin/mysqld --print-defaults \
| tr " " "\n" \
| grep -- "--$1" \
| tail -n 1 \
| cut -d= -f2
}

# priority can be overriden and "-s" adds output to stderr
ERR_LOGGER="logger -p daemon.err -t /etc/init/mysql.conf -i"

#Sanity checks
[ -r $HOME/my.cnf ]
[ -d /var/run/mysqld ] || install -m 755 -o mysql -g root -d /var/run/mysqld
/lib/init/apparmor-profile-load usr.sbin.mysqld

# check for diskspace shortage
datadir=`mysqld_get_param datadir`
BLOCKSIZE=`LC_ALL=C df --portability $datadir/. | tail -n 1 | awk '{print $4}'`
if [ $BLOCKSIZE -le 4096 ] ; then
echo "$0: ERROR: The partition with $datadir is too full!" >&2
echo "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER
exit 1
fi
end script

exec /usr/sbin/mysqld

post-start script
for i in `seq 1 30` ; do
/usr/bin/mysqladmin --defaults-file="${HOME}"/debian.cnf ping && {
exec "${HOME}"/debian-start
# should not reach this line
exit 2
}
statusnow=`status`
if echo $statusnow | grep -q 'stop/' ; then
exit 0
elif echo $statusnow | grep -q 'respawn/' ; then
exit 1
fi
sleep 1
done
exit 1
end script