Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 74261 Details for
Bug 114621
Mysql 5.0.16-r3 init script does not allow enough time to start
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
/etc/init.d/mysql
mysql-slot.rc6-r1 (text/plain), 8.55 KB, created by
Francesco R. (RETIRED)
on 2005-12-07 15:19:28 UTC
(
hide
)
Description:
/etc/init.d/mysql
Filename:
MIME Type:
Creator:
Francesco R. (RETIRED)
Created:
2005-12-07 15:19:28 UTC
Size:
8.55 KB
patch
obsolete
>#!/sbin/runscript ># Copyright 1999-2004 Gentoo Foundation ># Distributed under the terms of the GNU General Public License v2 ># $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/mysql-slot.rc6,v 1.6 2005/11/24 14:59:24 vivo Exp $ > ># external binaryes used: which, sed, tac > >depend() { > use dns net localmount netmount nfsmount >} > ># int in_list(char * elem, char * list) >function in_list() { > local elem=${1:-"none"} > local list=${2:-","} > > [[ "${list}" == "${list/,${elem},/}" ]] \ > && return 1 \ > || return 0 >} > >do_escape() { > # Ihatethisreallyverymuch > #echo "$1" | sed -e "s|'| |" -e "s|=|='|" -e "s|$|'|" > echo "$1" >} > ># int get_slot_config(srv_slot=0, srv_num) >get_slot_config() { > [[ ${DEBUG} -ge 4 ]] && einfo ">>> get_slot_config(\"${1}\", \"${2}\")" > > srv_slot="${1:-"0"}" > srv_num="${2}" > MY_SUFFIX="-${srv_slot}" > [[ "${MY_SUFFIX}" == '-0' ]] && MY_SUFFIX='' > > basedir="" datadir="" pidfile="" socket="" > CHROOT="" NICE="" STARTUPTIMEOUT=5 > > local tmp_eval="mysql_slot_${srv_slot}${srv_num:+"_"}${srv_num}[@]" > local conf_d_parameters="${!tmp_eval}" > [[ ${conf_d_parameters[*]} == '()' ]] && conf_d_parameters='' > > MY_CNF="/etc/mysql${MY_SUFFIX}/my.cnf" > # summa of unmanaged parameters > #>some parameters may be present more than one time > unmanagedparams="" > local mycnf > > # grab the parameters from conf.d/mysql definition > # svc script force bash sourcing of same-name conf.d file ... > #> so it's not possible to use my_print_defaults with that one > for my_default in ${conf_d_parameters[*]}; do > case "${my_default}" in > nice=*) > NICE="${my_default#nice=}" > nice -n $NICE ls /tmp &>/dev/null || NICE="" > ;; > mycnf=*) MY_CNF="${my_default#mycnf=}" ;; > startup_timeout=*) > STARTUPTIMEOUT="${my_default#startup_timeout=}" ;; > basedir=*) basedir="${my_default#basedir=}" ;; > datadir=*) datadir="${my_default#datadir=}" ;; > pid-file=*) pidfile="${my_default#pid-file=}" ;; > socket=*) socket="${my_default#socket=}" ;; > *=*) > # list of parameters we already have > # prepend "--" because my_print_defaults do it > unmanagedparams="${unmanagedparams} --$(do_escape "${my_default}" )" > ;; > *) > unmanagedparams="${unmanagedparams} --${my_default}" > ;; > esac > done > > if [[ ! -r "${MY_CNF}" ]]; then > ewarn "Cannot access ${MY_CNF} !" > MY_CNF="" > my_defaults="" > else > local my_print_defaults="$(which my_print_defaults${MY_SUFFIX} 2>/dev/null)" > if [[ ! -x "${my_print_defaults}" ]]; then > eerror "my_print_defaults NOT found or not executable" > my_defaults="" > else > my_defaults=$( ${my_print_defaults} \ > --loose-verbose \ > --config-file="${MY_CNF}" \ > mysqld server ) > fi > fi > > # grab needed parameters from my.cnf, don't override the ones from > # conf.d mysql > for my_default in ${my_defaults}; do > case "${my_default}" in > --basedir=*) > [[ -z "${basedir}" ]] && basedir="${my_default#--basedir=}" ;; > --datadir=*) > [[ -z "${datadir}" ]] && datadir="${my_default#--datadir=}" ;; > --pid-file=*) > [[ -z "${pidfile}" ]] && pidfile="${my_default#--pid-file=}" ;; > --socket=*) > [[ -z "${socket}" ]] && socket="${my_default#--socket=}" ;; > esac > done > > # still empty, I'm in doubt if assign a default or break, will see > basedir="${basedir:-"/usr"}" > datadir="${datadir:-"/var/lib/mysql${MY_SUFFIX}"}" > pidfile="${pidfile:-"/var/run/mysqld/mysqld${MY_SUFFIX}.pid"}" > socket="${socket:-"/var/run/mysqld/mysqld${MY_SUFFIX}.sock"}" > > if [[ ${DEBUG} -ge 3 ]] ; then > einfo "chroot dir => ${CHROOT}" > einfo "niceness => ${NICE}" > einfo "basedir => ${basedir}" > einfo "datadir => ${datadir}" > einfo "pidfile => ${pidfile}" > einfo "socket => ${socket}" > einfo "Unamanged => ${unmanagedparams}" > fi > > # push these out to the script > export MY_SUFFIX NICE MY_CNF pidfile datadir basedir socket CHROOT > export unmanagedparams STARTUPTIMEOUT > [[ ${DEBUG} -ge 4 ]] && einfo "<<< get_slot_config() ok" > return 0 >} > >checkconfig() { > [[ ${DEBUG} -ge 4 ]] && einfo ">>> checkconfig(\"${1}\")" > local datadir="$1" > if [ ! -d "${datadir}" ]; then > eerror "MySQL datadir is empty or invalid" > eerror "Please check your my.cnf : ${MY_CNF}" > [[ ${DEBUG} -ge 4 ]] && einfo "<<< checkconfig() KO" > return 1 > fi > > if [ ! -d "$datadir/mysql" ]; then > eerror "You don't appear to have the mysql database installed yet." > eerror "Please run /usr/bin/mysql_install_db to have this done..." > [[ ${DEBUG} -ge 4 ]] && einfo "<<< checkconfig() KO" > return 1 > fi > [[ ${DEBUG} -ge 4 ]] && einfo "<<< checkconfig() ok" > return 0 >} > >start() { > [[ ${DEBUG} -ge 4 ]] && einfo ">>> start()" > MYSQL_GLOB_PID_FILE=${MYSQL_GLOB_PID_FILE:-"/var/run/svc-started-mysqld"} > # servers are defined in /etc/conf.d/mysql > local serverlist=${!mysql_slot_*} > # provide default for empty conf.d/mysql > if [[ -z "${serverlist}" ]] ; then > serverlist=0 > export mysql_slot_0=() > fi > local retstatus timeout > local globretstatus=1 > local srv_slot srv_num > # server MUST NOT share same location for these > local pidfilelist=',' datadirlist=',' socketlist=',' > > # additional security > rm -f "${MYSQL_GLOB_PID_FILE}" ; touch "${MYSQL_GLOB_PID_FILE}" > if [[ $? -ne 0 ]] ; then > eerror "cannot create MYSQL_GLOB_PID_FILE: ${MYSQL_GLOB_PID_FILE}" > [[ ${DEBUG} -ge 4 ]] && einfo "<<< start() KO" > return 1 > fi > > ebegin > # try to start each server > for srv in ${serverlist[*]} ; do > einfo "working on ${srv}" > > srv_slot="${srv#mysql_slot_}" > if [[ "${srv_slot}" == "${srv_slot#*_}" ]] ; then > srv_num='' > else > srv_num="${srv_slot#*_}" > fi > srv_slot="${srv_slot%%_*}" > > retstatus=0 > get_slot_config "${srv_slot}" "${srv_num}" || retstatus=1 > > # timeout (seconds) before declare failed the startup > timeout=${STARTUPTIMEOUT} > > # pre_run checks > [[ "$retstatus" -eq 0 ]] && checkconfig "${datadir}" || retstatus=2 > if [[ "$retstatus" -eq 0 ]] ; then > if in_list "${pidfile}" "${pidfilelist}" ; then > retstatus=3 > eerror "Sorry, won't start with same pid-file: ${pidfile}" > fi > if in_list "${datadir}" "${datadirlist}" ; then > retstatus=4 > eerror "Sorry, won't start with same datadir: ${datadir}" > fi > if in_list "${socket}" "${socketlist}" ; then > retstatus=5 > eerror "Sorry, won't start with same socket: ${socket}" > fi > fi > > if [[ $retstatus -eq 0 ]] ; then > # additional security > rm -f ${pidfile} ${socket} > einfo "Starting mysqld${MY_SUFFIX:+"_"}${srv_slot}${srv_num:+"_"}${srv_num} (${MY_CNF})" > > [[ ${DEBUG} -ge 2 ]] && echo "starting mysqld with: "${basedir}/sbin/mysqld${MY_SUFFIX} ${unmanagedparams} --basedir=${basedir} --datadir=${datadir} --pid-file=${pidfile} --socket=${socket} > > start-stop-daemon --quiet --start --background \ > ${NICE:+"--nicelevel="}${NICE} \ > --pidfile="${pidfile}" \ > --startas ${basedir}/sbin/mysqld${MY_SUFFIX} \ > -- \ > ${MY_CNF:+"--defaults-file="}${MY_CNF} \ > ${unmanagedparams} \ > --basedir=${basedir} \ > --datadir=${datadir} \ > --pid-file=${pidfile} \ > --socket=${socket} > > retstatus=$? > > # wait for socket creation > [[ ${DEBUG} -ge 1 ]] && echo "" > while ! [[ -S "${socket}" || "${timeout}" -lt 1 || "${retstatus}" -ne 0 ]] ; do > timeout=$(($timeout - 1)) > [[ ${DEBUG} -ge 1 ]] && echo -n $(( $STARTUPTIMEOUT - $timeout )) > sleep 1 > done > [[ ${DEBUG} -ge 1 ]] && echo "" > if [[ ! -S "${socket}" ]] ; then > eerror "MySQL${MY_SUFFIX} NOT started (${retstatus})" > retstatus=1 > else > pidfilelist="${pidfilelist}${pidfile}," > datadirlist="${datadirlist}${datadir}," > socketlist="${socketlist}${socket}," > fi > fi > > if [[ $retstatus -eq 0 ]]; then > globretstatus=0 > echo "${srv_slot}${srv_num:+"_"}${srv_num}=${pidfile}" >> "${MYSQL_GLOB_PID_FILE}" > fi > done > # successfull if at least one mysqld started > [[ ${DEBUG} -ge 4 ]] && einfo "<<< start()" > eend $globretstatus >} > >stop () { > MYSQL_GLOB_PID_FILE=${MYSQL_GLOB_PID_FILE:-"/var/run/svc-started-mysqld"} > local runwhat pidfile shutdown_elem > local PID cnt timeout > local retstatus=0 > local shutdown_list="$(tac "${MYSQL_GLOB_PID_FILE}")" > > # shutdown in reverse order > ebegin > for shutdown_elem in $shutdown_list; do > runwhat=${shutdown_elem%%=*} > pidfile=${shutdown_elem#*=} > timeout=${STOPTIMEOUT:-"120"} > > einfo "Stopping mysqld (${runwhat})" > > PID=$(cat "${pidfile}" 2>/dev/null) > start-stop-daemon --stop --quiet --pidfile="${pidfile}" > [[ ${DEBUG} -ge 1 ]] && echo "" > while ! [[ -n "$PID" || $( kill -0 $PID 2>/dev/null ) || "${timeout}" -lt 1 ]] ; do > timeout=$(($timeout - 1)) > [[ ${DEBUG} -ge 1 ]] && echo -n $(( $STOPTIMEOUT - $timeout )) > sleep 1 > done > if [[ "${timeout}" -lt 1 ]] ; then > retstatus=$(( $retstatus + 1 )) > fi > done > > [[ "$retstatus" -eq 0 ]] && rm -f "$MYSQL_GLOB_PID_FILE" > eend $retstatus >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 114621
:
74261
|
74262
|
74268