summaryrefslogtreecommitdiff
path: root/www/apache24/files/apache24.in
diff options
context:
space:
mode:
Diffstat (limited to 'www/apache24/files/apache24.in')
-rw-r--r--www/apache24/files/apache24.in196
1 files changed, 196 insertions, 0 deletions
diff --git a/www/apache24/files/apache24.in b/www/apache24/files/apache24.in
new file mode 100644
index 000000000000..e5fd89e8dac3
--- /dev/null
+++ b/www/apache24/files/apache24.in
@@ -0,0 +1,196 @@
+#!/bin/sh
+#
+# $FreeBSD$
+
+# PROVIDE: apache24
+# REQUIRE: LOGIN cleanvar sshd
+# KEYWORD: shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable apache24:
+# apache24_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable apache24
+# apache24_profiles (str): Set to "" by default.
+# Define your profiles here.
+# apache24limits_enable (bool):Set to "NO" by default.
+# Set it to yes to run `limits $limits_args`
+# just before apache starts.
+# apache24_flags (str): Set to "" by default.
+# Extra flags passed to start command.
+# apache24limits_args (str): Default to "-e -C daemon"
+# Arguments of pre-start limits run.
+# apache24_http_accept_enable (bool): Set to "NO" by default.
+# Set to yes to check for accf_http kernel
+# module on start up and load if not loaded.
+# apache24_fib (str): Set an altered default network view for apache
+
+. /etc/rc.subr
+
+name="apache24"
+rcvar=apache24_enable
+
+start_precmd="apache24_prestart"
+restart_precmd="apache24_checkconfig"
+reload_precmd="apache24_checkconfig"
+reload_cmd="apache24_graceful"
+graceful_cmd="apache24_graceful"
+gracefulstop_cmd="apache24_gracefulstop"
+configtest_cmd="apache24_checkconfig"
+command="%%PREFIX%%/sbin/httpd"
+_pidprefix="/var/run/httpd"
+pidfile="${_pidprefix}.pid"
+required_files=%%PREFIX%%/etc/apache24/httpd.conf
+envvars="%%PREFIX%%/sbin/envvars"
+
+[ -z "$apache24_enable" ] && apache24_enable="NO"
+[ -z "$apache24limits_enable" ] && apache24limits_enable="NO"
+[ -z "$apache24limits_args" ] && apache24limits_args="-e -C daemon"
+[ -z "$apache24_http_accept_enable" ] && apache24_http_accept_enable="NO"
+
+apache24_accf()
+{
+ if checkyesno apache24_http_accept_enable; then
+ /sbin/kldstat -v | grep accf_http > /dev/null 2>&1 || /sbin/kldload accf_http || return ${?}
+ /sbin/kldstat -v | grep accf_data > /dev/null 2>&1 || /sbin/kldload accf_data || return ${?}
+ else
+ apache24_flags="${apache24_flags} -DNOHTTPACCEPT"
+ fi
+}
+
+load_rc_config $name
+
+if [ -n "$2" ]; then
+ profile="$2"
+ if [ "x${apache24_profiles}" != "x" ]; then
+ pidfile="${_pidprefix}.${profile}.pid"
+ eval apache24_configfile="\${apache24_${profile}_configfile:-}"
+ if [ "x${apache24_configfile}" = "x" ]; then
+ echo "You must define a configuration file (apache24_${profile}_configfile)"
+ exit 1
+ fi
+ required_files="${apache24_configfile}"
+ eval apache24_enable="\${apache24_${profile}_enable:-${apache24_enable}}"
+ eval apache24_flags="\${apache24_${profile}_flags:-${apache24_flags}}"
+ eval apache24_http_accept_enable="\${apache24_${profile}_http_accept_enable:-${apache24_http_accept_enable}}"
+ eval apache24limits_enable="\${apache24limits_${profile}_enable:-${apache24limits_enable}}"
+ eval apache24limits_args="\${apache24limits_${profile}_args:-${apache24limits_args}}"
+ eval apache24_fib="\${apache24_${profile}_fib:-${apache24_fib}}"
+ eval command="\${apache24_${profile}_command:-${command}}"
+ eval pidfile="\${apache24_${profile}_pidfile:-${pidfile}}"
+ eval apache24_envvars="\${apache24_${profile}_envvars:-${envvars}}"
+ apache24_flags="-f ${apache24_configfile} -c \"PidFile ${pidfile}\" ${apache24_flags}"
+ else
+ echo "$0: extra argument ignored"
+ fi
+else
+ eval apache24_envvars=${envvars}
+ if [ "x${apache24_profiles}" != "x" -a "x$1" != "x" ]; then
+ for profile in ${apache24_profiles}; do
+ eval _enable="\${apache24_${profile}_enable}"
+ case "x${_enable:-${apache24_enable}}" in
+ x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee])
+ continue
+ ;;
+ x[Yy][Ee][Ss])
+ ;;
+ *)
+ if test -z "$_enable"; then
+ _var=apache24_enable
+ else
+ _var=apache24_"${profile}"_enable
+ fi
+ echo "Bad value" \
+ "'${_enable:-${apache24_enable}}'" \
+ "for ${_var}. " \
+ "Profile ${profile} skipped."
+ continue
+ ;;
+ esac
+ echo "===> apache24 profile: ${profile}"
+ %%PREFIX%%/etc/rc.d/apache24 $1 ${profile}
+ retcode="$?"
+ if [ "0${retcode}" -ne 0 ]; then
+ failed="${profile} (${retcode}) ${failed:-}"
+ else
+ success="${profile} ${success:-}"
+ fi
+ done
+ exit 0
+ fi
+fi
+
+if [ "${1}" != "stop" ] ; then \
+ apache24_accf
+fi
+
+apache24_requirepidfile()
+{
+ apache24_checkconfig
+
+ if [ ! "0`check_pidfile ${pidfile} ${command}`" -gt 1 ]; then
+ echo "${name} not running? (check $pidfile)."
+ exit 1
+ fi
+}
+
+apache24_checkconfig()
+{
+ if test -f ${apache24_envvars}
+ then
+ . ${apache24_envvars}
+ fi
+
+ echo "Performing sanity check on apache24 configuration:"
+ eval ${command} ${apache24_flags} -t
+}
+
+apache24_graceful() {
+ apache24_requirepidfile
+
+ echo "Performing a graceful restart"
+ eval ${command} ${apache24_flags} -k graceful
+}
+
+apache24_gracefulstop() {
+ apache24_requirepidfile
+
+ echo "Performing a graceful stop"
+ eval ${command} ${apache24_flags} -k graceful-stop
+}
+
+apache24_precmd()
+{
+ apache24_checkconfig
+
+ if checkyesno apache24limits_enable
+ then
+ eval `/usr/bin/limits ${apache24limits_args}` 2>/dev/null
+ else
+ return 0
+ fi
+
+}
+
+apache24_checkfib () {
+ if command -v check_namevarlist > /dev/null 2>&1; then
+ check_namevarlist fib && return 0
+ fi
+
+ $SYSCTL net.fibs >/dev/null 2>&1 || return 0
+
+ apache24_fib=${apache24_fib:-"NONE"}
+ if [ "x$apache24_fib" != "xNONE" ]
+ then
+ command="/usr/sbin/setfib -F ${apache24_fib} ${command}"
+ else
+ return 0
+ fi
+}
+
+apache24_prestart() {
+ apache24_checkfib
+ apache24_precmd
+}
+
+extra_commands="reload graceful gracefulstop configtest"
+run_rc_command "$1"