--- 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
;;