diff -r adc592c67ee4 -r 47c675945a45 components/mysql-5-1/Solaris/mysql_51 --- a/components/mysql-5-1/Solaris/mysql_51 Wed Nov 20 15:46:14 2013 +0100 +++ b/components/mysql-5-1/Solaris/mysql_51 Thu Jan 09 22:44:58 2014 -0800 @@ -19,7 +19,7 @@ # # CDDL HEADER END # -# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. # . /lib/svc/share/smf_include.sh @@ -27,19 +27,30 @@ # SMF_FMRI is the name of the target service. This allows multiple instances # to use the same script. +if [ -z $SMF_FMRI ]; then + echo "SMF framework variables are not initialized." + exit $SMF_EXIT_ERR +fi + getproparg() { val=`svcprop -p $1 $SMF_FMRI` [ -n "$val" ] && echo $val } +MYSQLCNF=`getproparg mysql/cnf` MYSQLBIN=`getproparg mysql/bin` MYSQLDATA=`getproparg mysql/data` PIDFILE=${MYSQLDATA}/`/usr/bin/uname -n`.pid -if [ -z $SMF_FMRI ]; then - echo "SMF framework variables are not initialized." - exit $SMF_EXIT_ERR +if [ -z ${MYSQLCNF} ]; then + echo "mysql/cnf property not set" + exit $SMF_EXIT_ERR_CONFIG +fi + +if [ -z ${MYSQLBIN} ]; then + echo "mysql/bin property not set" + exit $SMF_EXIT_ERR_CONFIG fi if [ -z ${MYSQLDATA} ]; then @@ -53,9 +64,12 @@ fi if [ ! -d ${MYSQLDATA}/mysql ]; then + echo ${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA} ${MYSQLBIN}/mysql_install_db --user=mysql --datadir=${MYSQLDATA} fi +# refresh method for this service is not defined because mysqld by itself +# cannot accept a HUP signal to reload the configuration file my.cnf mysql_start() { MYSQLDVAL=`getproparg mysql/enable_64bit mysql:version_51` @@ -69,13 +83,13 @@ echo "Set the \"enable_64bit\" property value to \"false\" to start the 32-bit server." exit $SMF_EXIT_ERR_CONFIG else - echo ${MYSQLBIN}/64/mysqld_safe --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} - ${MYSQLBIN}/64/mysqld_safe --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} > /dev/null & + echo ${MYSQLBIN}/64/mysqld_safe --defaults-file=${MYSQLCNF} --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} + ${MYSQLBIN}/64/mysqld_safe --defaults-file=${MYSQLCNF} --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} > /dev/null & fi ;; false|0) - echo ${MYSQLBIN}/mysqld_safe --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} - ${MYSQLBIN}/mysqld_safe --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} > /dev/null & + echo ${MYSQLBIN}/mysqld_safe --defaults-file=${MYSQLCNF} --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} + ${MYSQLBIN}/mysqld_safe --defaults-file=${MYSQLCNF} --user=mysql --datadir=${MYSQLDATA} --pid-file=${PIDFILE} > /dev/null & ;; esac @@ -86,7 +100,7 @@ mysql_stop() { if [ -f ${PIDFILE} ]; then - pkill mysqld + smf_kill_contract $1 KILL 1 30 fi } @@ -96,7 +110,7 @@ ;; 'stop') - mysql_stop + mysql_stop $2 ;;