Skip to content

Instantly share code, notes, and snippets.

@zhangtaihao
Created August 30, 2012 02:44
Show Gist options
  • Save zhangtaihao/3521855 to your computer and use it in GitHub Desktop.
Save zhangtaihao/3521855 to your computer and use it in GitHub Desktop.
Debian init script to set up MySQL data on tmpfs
#!/bin/sh
### BEGIN INIT INFO
# Provides: mysqltmpfs
# Required-Start: $local_fs $remote_fs $syslog
# Required-Stop: $local_fs $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Start-Before: mysql
# X-Stop-After: mysql
### END INIT INFO
. /lib/lsb/init-functions
if [ ! -d /var/lib/mysql ]; then
mkdir /var/lib/mysql
fi
start () {
echo -n "Mounting MySQL tmpfs data folder: "
rc=0
mount -t tmpfs -o rw,nosuid,nodev,noexec,uid=`id -u mysql`,gid=`id -g mysql`,size=1g tmpfs /var/lib/mysql
if [ "$?" -ne "0" ]; then
log_failure_msg "Failed to mount MySQL data folder as tmpfs"
rc=1
elif [ -d /var/lib/.mysql ]; then
cp -R /var/lib/.mysql/* /var/lib/mysql/
touch /var/lib/mysql/.mysqldatadir
chown -R mysql:mysql /var/lib/mysql
chmod 0700 /var/lib/mysql
fi
if [ $rc -eq 0 ]; then
log_end_msg 0
else
log_end_msg 1
fi
}
stop () {
echo -n "Unmounting MySQL tmpfs data folder: "
rc=0
if [ -f /var/lib/mysql/.mysqldatadir ]; then
rm -fR /var/lib/.mysql
cp -R /var/lib/mysql /var/lib/.mysql
umount /var/lib/mysql
if [ "$?" -ne "0" ]; then
rc=1
fi
fi
if [ $rc -eq 0 ]; then
log_end_msg 0
else
log_end_msg 1
fi
}
restart () {
stop
start
}
#
# main()
#
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload|force-reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|force-reload}"
exit 1
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment