diff options
Diffstat (limited to 'abs/core/mysql/mysqld')
-rwxr-xr-x | abs/core/mysql/mysqld | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/abs/core/mysql/mysqld b/abs/core/mysql/mysqld new file mode 100755 index 0000000..0fcecf7 --- /dev/null +++ b/abs/core/mysql/mysqld @@ -0,0 +1,87 @@ +#!/bin/bash + +MYSQLD_ROOT="/var/lib/mysql" +# source application-specific settings +[ -f /etc/conf.d/mysqld ] && . /etc/conf.d/mysqld + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/mysqld` +if [ ! `egrep '^mysql:' /etc/group` ]; then + stat_busy "Adding mysql group" + groupadd -g 89 mysql + stat_done +fi +if [ ! `egrep '^mysql:' /etc/passwd` ]; then + stat_busy "Adding mysql user" + useradd -u 89 -g mysql -d $MYSQLD_ROOT -s /bin/false mysql + [ -d $MYSQLD_ROOT ] && chown -R mysql.mysql $MYSQLD_ROOT + stat_done +fi + +if [ ! -d $MYSQLD_ROOT ]; then + mkdir $MYSQLD_ROOT + /usr/bin/mysql_install_db --datadir=$MYSQLD_ROOT --user=mysql + chown -R mysql.mysql $MYSQLD_ROOT +fi + +if [ ! -e /var/log/mysqld.log ]; then + touch /var/log/mysqld.log + chown mysql /var/log/mysqld.log +fi + +case "$1" in + start) + stat_busy "Starting MySQL" + if [ -z "$PID" ]; then + /usr/bin/mysqld_safe --datadir=$MYSQLD_ROOT &>/dev/null & + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + sleep 1 # wait on children + PID=`pidof -o %PPID /usr/sbin/mysqld` + if [ -z "$PID" ]; then + stat_fail + exit 1 + else + echo $PID >/var/run/mysqld.pid + add_daemon mysqld + stat_done + fi + fi + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping MySQL" + if [ ! -z "$PID" ]; then + kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + rm -f /var/run/mysqld.pid &>/dev/null + rm_daemon mysqld + stat_done + fi + else + stat_fail + exit 1 + fi + ;; + + restart) + $0 stop + sleep 3 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 |