grknight    14/08/21 03:08:13

  Added:                conf.d-2.0 init.d-2.0
  Removed:              mysqlmanager.conf.d mysqlmanager.rc6
                        mysql-5.1.67-init.d-r1 mysql.rc6 mysql.conf.d
  Log:
  Verision bump to 2.0 adding a simple checkconfig and support for chroot
  
  (Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key 
67C78E1D)

Revision  Changes    Path
1.1                  dev-db/mysql-init-scripts/files/conf.d-2.0

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/mysql-init-scripts/files/conf.d-2.0?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/mysql-init-scripts/files/conf.d-2.0?rev=1.1&content-type=text/plain

Index: conf.d-2.0
===================================================================
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-init-scripts/files/conf.d-2.0,v 
1.1 2014/08/21 03:08:13 grknight Exp $

# If you want a non-stock location for the config file, uncomment or update
# either of these as needed. If you do use it, you must make sure that none of
# your socket, pidfile, datadir, logfiles, binary logs, relay logs or InnoDB
# files collide with each other.
MY_CNF="/etc/mysql/my.cnf"
#MY_CNF="${MY_CNF:-/etc/${SVCNAME}/my.cnf}"
#MY_CNF="${MY_CNF:-/etc/mysql/my-${SVCNAME/mysql.}.cnf}"

# Place any additional arguments here that you might need
# Common/useful options:
# --skip-slave-start=1 - For bringing up replication initially
# --server-id=NNN - Server ID for replication
# --skip-networking - lock it down to UNIX sockets only
MY_ARGS=""

# This setting (in seconds) should be high enough to allow InnoDB to do a full
# checkpoint recovery. 900 is the default used in the upstream RPM startup
# scripts. 30 seconds should be sufficent if you just have a tiny <1GiB
# database. After the core startup is done, we wait this long for the UNIX
# socket to appear.
STARTUP_TIMEOUT="900"

# This is how long, in milliseconds, we wait for pidfile to be created, early
# in the startup.
STARTUP_EARLY_TIMEOUT="1000"

# How long (in seconds) should we wait for shutdown?
STOP_TIMEOUT=120

# integer [-20 .. 19 ] default 0
# change the priority of the server -20 (high) to 19 (low)
# see nice(1) for description
#NICE=0

# See start-stop-daemon(8) for possible settings
#IONICE=2

# If defined, --verbose gets passed to S-S-D
#DEBUG=1

# Depending on your usage of MySQL, you may also wish to start it after some
# other services are up. Uncomment the lines below as needed. If these aren't
# enough for you, we encourage you to file a bug, and help us understand how
# you are using MySQL.

# Do your MySQL ACLs refer to hostnames not in your /etc/hosts?
# If so, you need DNS before you can accept connections.
# Avoid dependency circular loops if you use MySQL to power a local DNS server.
#rc_use="dns"
#rc_after="dns"

# Does your MySQL bind to an IP on an interface other than net.lo?
# Alternatively you might wish to specify the exact interface here.
#rc_use="net"
#rc_after="net"

# Do you store your MySQL files on a SAN or other network filesystem, that is
# provided by the netmount init script?
#rc_need="netmount"

# Or from NFS? P.S. This is not a good idea in most cases, but does have some
# valid usage cases, so we provide the option.
#rc_need="nfsmount"

# Should any one of the instances satisfy the requirement for MySQL coming up?
# By default, we say no.
[ "${SVCNAME}" != mysql ] && rc_provide="!mysql"
# But uncomment this next instead if you think it should.
#rc_provide="mysql"

# The conditional above has a false-positive "failure" return value as a
# side-effect, and since it's the last statement, without the next line, this
# script returns failure.
return 0
# vim: ft=gentoo-conf-d et ts=4 sw=4:



1.1                  dev-db/mysql-init-scripts/files/init.d-2.0

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/mysql-init-scripts/files/init.d-2.0?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/mysql-init-scripts/files/init.d-2.0?rev=1.1&content-type=text/plain

Index: init.d-2.0
===================================================================
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql-init-scripts/files/init.d-2.0,v 
1.1 2014/08/21 03:08:13 grknight Exp $

extra_commands="checkconfig"

depend() {
        use net.lo
        # localmount needed for $basedir
        need localmount
}

get_config() {
        my_print_defaults --config-file="$1" mysqld |
        sed -n -e "s/^--$2=//p"
}

mysql_svcname() {
        local ebextra=
        case "${SVCNAME}" in
                mysql*) ;;
                *) ebextra=" (mysql)" ;;
        esac
        echo "${SVCNAME}${ebextra}"
}

start() {
        # Check for old conf.d variables that mean migration was not yet done.
        set | egrep -sq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)'
        rc=$?
        # Yes, MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING is a hidden variable.
        # It does have a use in testing, as it is possible to build a config 
file
        # that works with both the old and new init scripts simulateously.
        if [ "${rc}" = 0 -a -z "${MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING}" ]; then
                eerror "You have not updated your conf.d for the new 
mysql-init-scripts-2 revamp."
                eerror "Not proceeding because it may be dangerous."
                return 1
        fi

        # Check the config or die
        checkconfig || return 1

        # Now we can startup
        ebegin "Starting $(mysql_svcname)"

        MY_CNF="${MY_CNF:-/etc/${SVCNAME}/my.cnf}"

        if [ ! -r "${MY_CNF}" ] ; then
                eerror "Cannot read the configuration file \`${MY_CNF}'"
                return 1
        fi

        # tail -n1 is critical as these we only want the last instance of the 
option
        local basedir=$(get_config "${MY_CNF}" basedir | tail -n1)
        local datadir=$(get_config "${MY_CNF}" datadir | tail -n1)
        local pidfile=$(get_config "${MY_CNF}" pid-file | tail -n1)
        local socket=$(get_config "${MY_CNF}" socket | tail -n1)
        local chroot=$(get_config "${MY_CNF}" chroot | tail -n1)

        if [ -n "${chroot}" ] ; then
                socket="${chroot}/${socket}"
                pidfile="${chroot}/${pidfile}"
        fi

        if [ ! -d "${datadir}" ] ; then
                eerror "MySQL datadir \`${datadir}' is empty or invalid"
                eerror "Please check your config file \`${MY_CNF}'"
                return 1
        fi

        if [ ! -d "${datadir}"/mysql ] ; then
                # find which package is installed to report an error
                local EROOT=$(portageq envvar EROOT)
                local DBPKG_P=$(portageq match ${EROOT} $(portageq 
expand_virtual ${EROOT} virtual/mysql))
                if [[ -z ${DBPKG_P} ]] ; then
                        eerror "You don't appear to have a server package 
installed yet."
                else
                        eerror "You don't appear to have the mysql database 
installed yet."
                        eerror "Please run \`emerge --config =${DBPKG_P}\` to 
have this done..."
                fi
                return 1
        fi

        local piddir="${pidfile%/*}"
        checkpath -d --owner mysql:mysql --mode 0755 "$piddir"
        rc=$?
        if [ $rc -ne 0 ]; then
                eerror "Directory $piddir for pidfile does not exist and cannot 
be created"
                return 1
        fi

        local startup_timeout=${STARTUP_TIMEOUT:-900}
        local startup_early_timeout=${STARTUP_EARLY_TIMEOUT:-1000}
        local tmpnice="${NICE:+"--nicelevel "}${NICE}"
        local tmpionice="${IONICE:+"--ionice "}${IONICE}"
        start-stop-daemon \
                ${DEBUG:+"--verbose"} \
                --start \
                --exec "${basedir}"/sbin/mysqld \
                --pidfile "${pidfile}" \
                --background \
                --wait ${startup_early_timeout} \
                ${tmpnice} \
                ${tmpionice} \
                -- --defaults-file="${MY_CNF}" ${MY_ARGS}
        local ret=$?
        if [ ${ret} -ne 0 ] ; then
                eend ${ret}
                return ${ret}
        fi

        ewaitfile ${startup_timeout} "${socket}"
        eend $? || return 1

        save_options pidfile "${pidfile}"
        save_options basedir "${basedir}"
}

stop() {
        ebegin "Stopping $(mysql_svcname)"

        local pidfile="$(get_options pidfile)"
        local basedir="$(get_options basedir)"
        local stop_timeout=${STOP_TIMEOUT:-120}

        start-stop-daemon \
                ${DEBUG:+"--verbose"} \
                --stop \
                --exec "${basedir}"/sbin/mysqld \
                --pidfile "${pidfile}" \
                --retry ${stop_timeout}
        eend $?
}

checkconfig() {
        local basedir=$(get_config "${MY_CNF}" basedir | tail -n1)
        ebegin "Checking mysqld configuration"

        # Suppress output to check the return value
        "${basedir}"/sbin/mysqld --help --verbose &> /dev/null

        # If the above command does not return 0,
        # then there is an error to echo to the user
        if [ $? -ne 0 ] ; then
                "${basedir}"/sbin/mysqld --help --verbose > /dev/null
        fi

        eend $? "MySQL config check failed"
}

# vim: filetype=gentoo-init-d sw=2 ts=2 sts=2 noet:





Reply via email to