Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 152787 | Differences between
and this patch

Collapse All | Expand All

(-)mysql.rc6-orig (-22 / +27 lines)
Lines 122-127 Link Here
122
	# conf.d/mysql
122
	# conf.d/mysql
123
	for my_default in ${my_defaults} ; do
123
	for my_default in ${my_defaults} ; do
124
		case "${my_default}" in
124
		case "${my_default}" in
125
			--chroot=*)
126
				[[ -z "${chroot}" ]] && chroot="${my_default#--chroot=}" ;;
125
			--basedir=*)
127
			--basedir=*)
126
				[[ -z "${basedir}" ]] && basedir="${my_default#--basedir=}" ;;
128
				[[ -z "${basedir}" ]] && basedir="${my_default#--basedir=}" ;;
127
			--datadir=*)
129
			--datadir=*)
Lines 144-150 Link Here
144
	socket="${socket:-"/var/run/mysqld/mysqld${MY_SUFFIX}.sock"}"
146
	socket="${socket:-"/var/run/mysqld/mysqld${MY_SUFFIX}.sock"}"
145
	unmanagedparams="${unmanagedparams} ${collations}"
147
	unmanagedparams="${unmanagedparams} ${collations}"
146
148
147
	wdebug 3 "chroot dir => ${CHROOT}"
149
	wdebug 3 "chroot dir => ${chroot}"
148
	wdebug 3 "niceness   => ${NICE}"
150
	wdebug 3 "niceness   => ${NICE}"
149
	wdebug 3 "basedir    => ${basedir}"
151
	wdebug 3 "basedir    => ${basedir}"
150
	wdebug 3 "datadir    => ${datadir}"
152
	wdebug 3 "datadir    => ${datadir}"
Lines 177-214 Link Here
177
		return 0
179
		return 0
178
	fi
180
	fi
179
181
180
	if [[ ! -d "${datadir}" ]] ; then
182
	if [[ ! -d "${chroot}${datadir}" ]] ; then
181
		eerror "MySQL datadir is empty or invalid"
183
		eerror "MySQL datadir is empty or invalid"
182
		eerror "Please check your my.cnf : ${MY_CNF}"
184
		eerror "Please check your my.cnf : ${MY_CNF}"
183
		wdebug 4 "<<< checkconfig() KO"
185
		wdebug 4 "<<< checkconfig() KO"
184
		return 1
186
		return 1
185
	fi
187
	fi
186
188
187
	if [[ ! -d "${datadir}/mysql" ]] ; then
189
	if [[ ! -d "${chroot}${datadir}/mysql" ]] ; then
188
		eerror "You don't appear to have the mysql database installed yet."
190
		eerror "You don't appear to have the mysql database installed yet."
189
		eerror "Please run /usr/bin/mysql_install_db to have this done..."
191
		eerror "Please run /usr/bin/mysql_install_db to have this done..."
190
		wdebug 4 "<<< checkconfig() KO"
192
		wdebug 4 "<<< checkconfig() KO"
191
		return 1
193
		return 1
192
	fi
194
	fi
193
195
194
	if [[ -f "${pidfile}" ]] ; then
196
	if [[ -f "${chroot}${pidfile}" ]] ; then
195
		kill -15 $(< ${pidfile}) 2>/dev/null
197
		kill -15 $(< ${pidfile}) 2>/dev/null
196
		if [[ $? -eq 0 ]] ; then
198
		if [[ $? -eq 0 ]] ; then
197
			# the process exist, we have a problem
199
			# the process exist, we have a problem
198
			eerror "\"${pidfile}\" is still present and the process is running."
200
			eerror "\"${chroot}${pidfile}\" is still present and the process is running."
199
			eerror "Please stop it \"kill $(< ${pidfile})\" maybe ?"
201
			eerror "Please stop it \"kill $(< ${chroot}${pidfile})\" maybe ?"
200
			wdebug 4 "<<< checkconfig() KO"
202
			wdebug 4 "<<< checkconfig() KO"
201
			return 1
203
			return 1
202
		else
204
		else
203
			rm -f "${pidfile}"
205
			rm -f "${chroot}${pidfile}"
204
		fi
206
		fi
205
	fi
207
	fi
206
208
207
	if [[ -S "${socket}" ]] ; then
209
	if [[ -S "${chroot}${socket}" ]] ; then
208
		ewarn "Strange, the socket file already exist in \"${socket}\""
210
		ewarn "Strange, the socket file already exist in \"${chroot}${socket}\""
209
		ewarn "it will be removed now and re-created by the MySQL server"
211
		ewarn "it will be removed now and re-created by the MySQL server"
210
		ewarn "BUT please make your checks."
212
		ewarn "BUT please make your checks."
211
		rm -f "${socket}"
213
		rm -f "${chroot}${socket}"
212
	fi
214
	fi
213
215
214
	wdebug 4 "<<< checkconfig() ok"
216
	wdebug 4 "<<< checkconfig() ok"
Lines 234-239 Link Here
234
	local ssd_thing=1
236
	local ssd_thing=1
235
	local mysqld_thing tmpnice
237
	local mysqld_thing tmpnice
236
238
239
	# Ensure that LD_PRELOAD is really exported
240
	[[ -n ${LD_PRELOAD} ]] && export LD_PRELOAD="${LD_PRELOAD}"
241
237
	ebegin "Starting ${myservice}"
242
	ebegin "Starting ${myservice}"
238
	# try to start each server
243
	# try to start each server
239
	for srv in ${serverlist[*]} ; do
244
	for srv in ${serverlist[*]} ; do
Lines 253-267 Link Here
253
		if ! checkconfig "${datadir}" "${pidfile}" "${socket}" ; then
258
		if ! checkconfig "${datadir}" "${pidfile}" "${socket}" ; then
254
			retstatus=2 ; continue
259
			retstatus=2 ; continue
255
		fi
260
		fi
256
		if in_list "${pidfile}" "${pidfilelist}" ; then
261
		if in_list "${chroot}${pidfile}" "${pidfilelist}" ; then
257
			eerror "Sorry, won't start with same pid-file: ${pidfile}"
262
			eerror "Sorry, won't start with same pid-file: ${pidfile}"
258
			retstatus=3 ; continue
263
			retstatus=3 ; continue
259
		fi
264
		fi
260
		if in_list "${datadir}" "${datadirlist}" ; then
265
		if in_list "${chroot}${datadir}" "${datadirlist}" ; then
261
			eerror "Sorry, won't start with same datadir: ${datadir}"
266
			eerror "Sorry, won't start with same datadir: ${datadir}"
262
			retstatus=4 ; continue
267
			retstatus=4 ; continue
263
		fi
268
		fi
264
		if in_list "${socket}" "${socketlist}" ; then
269
		if in_list "${chroot}${socket}" "${socketlist}" ; then
265
			eerror "Sorry, won't start with same socket: ${socket}"
270
			eerror "Sorry, won't start with same socket: ${socket}"
266
			retstatus=5 ; continue
271
			retstatus=5 ; continue
267
		fi
272
		fi
Lines 280-286 Link Here
280
		if [[ ${ssd_thing} -eq 1 ]] ; then
285
		if [[ ${ssd_thing} -eq 1 ]] ; then
281
			tmpnice="${NICE:+"--nicelevel "}${NICE}"
286
			tmpnice="${NICE:+"--nicelevel "}${NICE}"
282
			start-stop-daemon --quiet ${DEBUG/*/"--verbose"} --start \
287
			start-stop-daemon --quiet ${DEBUG/*/"--verbose"} --start \
283
			--background ${tmpnice} --pidfile ${pidfile} \
288
			--background ${tmpnice} --pidfile ${chroot}${pidfile} \
284
			--exec ${basedir}/sbin/mysqld${MY_SUFFIX} -- ${mysqld_thing}
289
			--exec ${basedir}/sbin/mysqld${MY_SUFFIX} -- ${mysqld_thing}
285
			retstatus=$?
290
			retstatus=$?
286
		else
291
		else
Lines 294-313 Link Here
294
299
295
		# wait for socket creation
300
		# wait for socket creation
296
		wdebug 1
301
		wdebug 1
297
		while ! [[ -S "${socket}" || "${STARTUPTIMEOUT}" -lt 1 || "${retstatus}" -ne 0 ]] ; do
302
		while ! [[ -S "${chroot}${socket}" || "${STARTUPTIMEOUT}" -lt 1 || "${retstatus}" -ne 0 ]] ; do
298
			STARTUPTIMEOUT=$(( STARTUPTIMEOUT - 1 ))
303
			STARTUPTIMEOUT=$(( STARTUPTIMEOUT - 1 ))
299
			[[ ${DEBUG} -ge 1 ]] && echo -n "${STARTUPTIMEOUT},"
304
			[[ ${DEBUG} -ge 1 ]] && echo -n "${STARTUPTIMEOUT},"
300
			sleep ${TIMEUNIT}
305
			sleep ${TIMEUNIT}
301
		done
306
		done
302
		wdebug 1 ""
307
		wdebug 1 ""
303
		if [[ ! -S "${socket}" ]] ; then
308
		if [[ ! -S "${chroot}${socket}" ]] ; then
304
			eerror "MySQL${MY_SUFFIX} NOT started (${retstatus})"
309
			eerror "MySQL${MY_SUFFIX} NOT started (${retstatus})"
305
			retstatus=1
310
			retstatus=1
306
		else
311
		else
307
			globretstatus=0
312
			globretstatus=0
308
			pidfilelist="${pidfilelist}${pidfile},"
313
			pidfilelist="${pidfilelist}${chroot}${pidfile},"
309
			datadirlist="${datadirlist}${datadir},"
314
			datadirlist="${datadirlist}${chroot}${datadir},"
310
			socketlist="${socketlist}${socket},"
315
			socketlist="${socketlist}${chroot}${socket},"
311
			echo "${srv_slot}${srv_num:+"_"}${srv_num}=${pidfile}" >> "${MYSQL_GLOB_PID_FILE}"
316
			echo "${srv_slot}${srv_num:+"_"}${srv_num}=${pidfile}" >> "${MYSQL_GLOB_PID_FILE}"
312
		fi
317
		fi
313
	done
318
	done
Lines 331-345 Link Here
331
		runwhat=${shutdown_elem%%=*}
336
		runwhat=${shutdown_elem%%=*}
332
		pidfile=${shutdown_elem#*=}
337
		pidfile=${shutdown_elem#*=}
333
		timeout=${STOPTIMEOUT:-"120"}
338
		timeout=${STOPTIMEOUT:-"120"}
334
		PID=$(< "${pidfile}" )
339
		PID=$(< "${chroot}${pidfile}" )
335
		wdebug 3 "runwhat            ${runwhat}"
340
		wdebug 3 "runwhat            ${runwhat}"
336
		wdebug 3 "pidfile            ${pidfile}"
341
		wdebug 3 "pidfile            ${chroot}${pidfile}"
337
		wdebug 3 "timeout            ${timeout}"
342
		wdebug 3 "timeout            ${timeout}"
338
		wdebug 3 "PID                ${PID}"
343
		wdebug 3 "PID                ${PID}"
339
344
340
		einfo "Stopping mysqld (${runwhat})"
345
		einfo "Stopping mysqld (${runwhat})"
341
346
342
		start-stop-daemon --quiet ${DEBUG/*/"--verbose"} --stop --pidfile "${pidfile}" &
347
		start-stop-daemon --quiet ${DEBUG/*/"--verbose"} --stop --pidfile "${chroot}${pidfile}" &
343
		wdebug 1 ""
348
		wdebug 1 ""
344
		while [[ -n "$PID" ]] \
349
		while [[ -n "$PID" ]] \
345
			&& $( ps -Ao pid | grep -q "^ *$PID$" ) \
350
			&& $( ps -Ao pid | grep -q "^ *$PID$" ) \

Return to bug 152787