All pastes #2845519 Raw Edit

Gentoo apache2 init script

public unlisted shellscript v1 · immutable
#2845519 ·published 2014-09-23 03:52 UTC
rendered paste body
#!/sbin/runscript# Copyright 1999-2011 Gentoo Foundation# Distributed under the terms of the GNU General Public License v2extra_commands="configtest modules virtualhosts"extra_started_commands="configdump fullstatus graceful gracefulstop reload"description_configdump="Dumps the configuration of the runing apache server. Requires server-info to be enabled and www-client/lynx."description_configtest="Run syntax tests for configuration files."description_fullstatus="Gives the full status of the server. Requires lynx and server-status to be enabled."description_graceful="A graceful restart advises the children to exit after the current request and reloads the configuration."description_gracefulstop="A graceful stop advises the children to exit after the current request and stops the server."description_modules="Dump a list of loaded Static and Shared Modules."description_reload="Kills all children and reloads the configuration."description_virtualhosts="Show the settings as parsed from the config file (currently only shows the virtualhost settings)."description_stop="Kills all children and stops the server."depend() {	need net	use mysql dns logger netmount postgresql	after sshd}configtest() {	ebegin "Checking ${SVCNAME} configuration"	checkconfig	eend $?}checkconfd() {	if [ ! -f /etc/init.d/sysfs ]; then		eerror "This init script works only with openrc (baselayout-2)."		eerror "If you still need baselayout-1.x, please, use"		eerror "apache2.initd-baselayout-1 from /usr/share/doc/apache2-*/"	fi	PIDFILE="${PIDFILE:-/var/run/apache2.pid}"	TIMEOUT=${TIMEOUT:-15}	SERVERROOT="${SERVERROOT:-/usr/lib/apache2}"	if [ ! -d ${SERVERROOT} ]; then		eerror "SERVERROOT does not exist: ${SERVERROOT}"		return 1	fi	CONFIGFILE="${CONFIGFILE:-/etc/apache2/httpd.conf}"	[ "${CONFIGFILE#/}" = "${CONFIGFILE}" ] && CONFIGFILE="${SERVERROOT}/${CONFIGFILE}"	if [ ! -r "${CONFIGFILE}" ]; then		eerror "Unable to read configuration file: ${CONFIGFILE}"		return 1	fi	APACHE2_OPTS="${APACHE2_OPTS} -d ${SERVERROOT}"	APACHE2_OPTS="${APACHE2_OPTS} -f ${CONFIGFILE}"	[ -n "${STARTUPERRORLOG}" ] && APACHE2_OPTS="${APACHE2_OPTS} -E ${STARTUPERRORLOG}"	APACHE2="/usr/sbin/apache2"}checkconfig() {	checkpath --directory /run/apache_ssl_mutex	checkconfd || return 1	${APACHE2} ${APACHE2_OPTS} -t 1>/dev/null 2>&1	ret=$?	if [ $ret -ne 0 ]; then		eerror "${SVCNAME} has detected an error in your setup:"		${APACHE2} ${APACHE2_OPTS} -t	fi	return $ret}start() {	checkconfig || return 1	ebegin "Starting ${SVCNAME}"	# Use start stop daemon to apply system limits #347301 	start-stop-daemon --start -- ${APACHE2} ${APACHE2_OPTS} -k start	local i=0 retval=1	while [ $i -lt ${TIMEOUT} ] ; do		if [ -e "${PIDFILE}" ] ; then			retval=0			break		fi		sleep 1 && i=$(expr $i + 1)	done	eend ${retval}}stop() {	if [ "${RC_CMD}" = "restart" ]; then		checkconfig || return 1	else		checkconfd || return 1	fi	PID=$(cat "${PIDFILE}" 2>/dev/null)	if [ -z "${PID}" ]; then		einfo "${SVCNAME} not running (no pid file)"		return 0	fi	ebegin "Stopping ${SVCNAME}"	${APACHE2} ${APACHE2_OPTS} -k stop	local i=0 retval=0	while ( test -f "${PIDFILE}" || pgrep -P ${PID} apache2 >/dev/null ) \		&& [ $i -lt ${TIMEOUT} ]; do		sleep 1 && i=$(expr $i + 1)	done	[ -e "${PIDFILE}" ] && retval=1	eend ${retval}}reload() {	RELOAD_TYPE="${RELOAD_TYPE:-graceful}"	checkconfig || return 1	if [ "${RELOAD_TYPE}" = "restart" ]; then		ebegin "Restarting ${SVCNAME}"		${APACHE2} ${APACHE2_OPTS} -k restart		eend $?	elif [ "${RELOAD_TYPE}" = "graceful" ]; then		ebegin "Gracefully restarting ${SVCNAME}"		${APACHE2} ${APACHE2_OPTS} -k graceful		eend $?	else		eerror "${RELOAD_TYPE} is not a valid RELOAD_TYPE. Please edit /etc/conf.d/${SVCNAME}"	fi}graceful() {	checkconfig || return 1	ebegin "Gracefully restarting ${SVCNAME}"	${APACHE2} ${APACHE2_OPTS} -k graceful	eend $?}gracefulstop() {	checkconfig || return 1	ebegin "Gracefully stopping ${SVCNAME}"	${APACHE2} ${APACHE2_OPTS} -k graceful-stop	eend $?}modules() {	checkconfig || return 1	${APACHE2} ${APACHE2_OPTS} -M 2>&1}fullstatus() {	LYNX="${LYNX:-lynx -dump}"	STATUSURL="${STATUSURL:-http://localhost/server-status}"	if ! type -p $(set -- ${LYNX}; echo $1) 2>&1 >/dev/null; then		eerror "lynx not found! you need to emerge www-client/lynx"	else		${LYNX} ${STATUSURL}	fi}virtualhosts() {	checkconfig || return 1	${APACHE2} ${APACHE2_OPTS} -S}configdump() {	LYNX="${LYNX:-lynx -dump}"	INFOURL="${INFOURL:-http://localhost/server-info}"	checkconfd || return 1	if ! type -p $(set -- ${LYNX}; echo $1) 2>&1 >/dev/null; then		eerror "lynx not found! you need to emerge www-client/lynx"	else		echo "${APACHE2} started with '${APACHE2_OPTS}'"		for i in config server list; do			${LYNX} "${INFOURL}/?${i}" | sed '/Apache Server Information/d;/^[[:space:]]\+[_]\+$/Q'		done	fi}# vim: ts=4 filetype=gentoo-init-d