summaryrefslogtreecommitdiffstats
path: root/debian/apache2ctl
diff options
context:
space:
mode:
Diffstat (limited to 'debian/apache2ctl')
-rwxr-xr-xdebian/apache2ctl217
1 files changed, 217 insertions, 0 deletions
diff --git a/debian/apache2ctl b/debian/apache2ctl
new file mode 100755
index 0000000..e3feab7
--- /dev/null
+++ b/debian/apache2ctl
@@ -0,0 +1,217 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+# Apache control script designed to allow an easy command line interface
+# to controlling Apache. Written by Marc Slemko, 1997/08/23
+#
+# Heavily modified for Debian by Stefan Fritsch 2007-2010
+#
+# The exit codes returned are:
+# XXX this doc is no longer correct now that the interesting
+# XXX functions are handled by httpd
+# 0 - operation completed successfully
+# 1 -
+# 2 - usage error
+# 3 - httpd could not be started
+# 4 - httpd could not be stopped
+# 5 - httpd could not be started during a restart
+# 6 - httpd could not be restarted during a restart
+# 7 - httpd could not be restarted during a graceful restart
+# 8 - configuration syntax error
+#
+# When multiple arguments are given, only the error from the _last_
+# one is reported. Run "apachectl help" for usage info
+#
+ARGV="$@"
+#
+# |||||||||||||||||||| START CONFIGURATION SECTION ||||||||||||||||||||
+# -------------------- --------------------
+#
+# main configuration directory
+if test -z "$APACHE_CONFDIR" ; then
+ if test "${0##*apache2ctl-}" != "$0" ; then
+ APACHE_CONFDIR="/etc/apache2-${0##*apache2ctl-}"
+ else
+ APACHE_CONFDIR=/etc/apache2
+ fi
+fi
+
+SUFFIX="${APACHE_CONFDIR##/etc/apache2-}"
+case "$SUFFIX" in
+ /etc/apache2)
+ SUFFIX=""
+ ;;
+ *)
+ SUFFIX="@$SUFFIX"
+ ;;
+esac
+APACHE_SYSTEMD_SERVICE="apache2$SUFFIX"
+
+# the path to the environment variable file
+test -z "$APACHE_ENVVARS" && APACHE_ENVVARS="$APACHE_CONFDIR/envvars"
+# pick up any necessary environment variables
+if test -f $APACHE_ENVVARS; then
+ . $APACHE_ENVVARS
+fi
+
+if test "$APACHE_CONFDIR" != /etc/apache2 ; then
+ APACHE_ARGUMENTS="-d $APACHE_CONFDIR $APACHE_ARGUMENTS"
+fi
+# the following APACHE_* variables should be set in /etc/apache2/envvars
+#
+# the path to your httpd binary, including options if necessary
+HTTPD=${APACHE_HTTPD:-/usr/sbin/apache2}
+#
+# a command that outputs a formatted text version of the HTML at the
+# url given on the command line. Designed for lynx, however other
+# programs may work.
+LYNX="${APACHE_LYNX:-www-browser -dump}"
+#
+# the URL to your server's mod_status status page. If you do not
+# have one, then status and fullstatus will not work.
+STATUSURL="${APACHE_STATUSURL:-http://localhost:80/server-status}"
+#
+# Set this variable to a command that increases the maximum
+# number of file descriptors allowed per child process. This is
+# critical for configurations that use many file descriptors,
+# such as mass vhosting, or a multithreaded server.
+ULIMIT_MAX_FILES="${APACHE_ULIMIT_MAX_FILES:-ulimit -n 8192}"
+# -------------------- --------------------
+# |||||||||||||||||||| END CONFIGURATION SECTION ||||||||||||||||||||
+
+# Set the maximum number of file descriptors allowed per child process.
+if [ "x$ULIMIT_MAX_FILES" != "x" ] && [ `id -u` -eq 0 ] ; then
+ if ! $ULIMIT_MAX_FILES ; then
+ echo Setting ulimit failed. See README.Debian for more information. >&2
+ fi
+fi
+
+ERROR=0
+if [ "x$ARGV" = "x" ] || [ "x$ARGV" = "xusage" ] || [ "x$ARGV" = "xhelp" ] || [ "x$ARGV" = "x--help" ]; then
+ echo "Usage: $0 start|stop|restart|graceful|graceful-stop|configtest|status|fullstatus|help" >&2
+ echo " $0 <apache2 args>" >&2
+ echo " $0 -h (for help on <apache2 args>)" >&2
+ exit 1
+fi
+
+get_status () {
+ if ! $LYNX $STATUSURL ; then
+ echo "'$LYNX $STATUSURL'" failed. >&2
+ echo Maybe you need to install a package providing www-browser or you >&2
+ echo need to adjust the APACHE_LYNX variable in /etc/apache2/envvars >&2
+ exit 1
+ fi
+}
+
+mkdir_chown () {
+ local OWNER="$1"
+ local DIR="$2"
+ local STAT="$(LC_ALL=C stat -c %F:%U $DIR 2> /dev/null || true)"
+ if [ "$STAT" = "" ] ; then
+ local TMPNAME=$(mktemp -d $DIR.XXXXXXXXXX) || exit 1
+ chmod 755 $TMPNAME || exit 1
+ chown $OWNER $TMPNAME || exit 1
+ if ! mv -T $TMPNAME $DIR 2> /dev/null; then
+ rmdir $TMPNAME
+ # check for race with other apachectl
+ if [ "$(LC_ALL=C stat -c %F:%U $DIR 2>/dev/null)" != "directory:$OWNER" ]
+ then
+ echo Cannot create $DIR with owner $OWNER.
+ echo Please fix manually. Aborting.
+ exit 1
+ fi
+ fi
+ elif [ "$STAT" != "directory:$OWNER" ] ; then
+ echo $DIR already exists but is not a directory owned by $OWNER.
+ echo Please fix manually. Aborting.
+ exit 1
+ fi
+}
+
+
+[ ! -d ${APACHE_RUN_DIR:-/var/run/apache2} ] && mkdir -p ${APACHE_RUN_DIR:-/var/run/apache2}
+[ ! -d ${APACHE_RUN_DIR:-/var/run/apache2}/socks ] && mkdir_chown ${APACHE_RUN_USER:-www-data} ${APACHE_RUN_DIR:-/var/run/apache2}/socks
+[ ! -d ${APACHE_LOCK_DIR:-/var/lock/apache2} ] && mkdir_chown ${APACHE_RUN_USER:-www-data} ${APACHE_LOCK_DIR:-/var/lock/apache2}
+
+case "$ARGV" in
+start)
+ # ssl_scache shouldn't be here if we're just starting up.
+ # (this is bad if there are several apache2 instances running)
+ rm -f ${APACHE_RUN_DIR:-/var/run/apache2}/*ssl_scache*
+
+ need_systemd=false
+ if [ -z "$APACHE_STARTED_BY_SYSTEMD" ] ; then
+ case "$(readlink -f /proc/1/exe)" in
+ *systemd*)
+ need_systemd=true
+ ;;
+ *)
+ ;;
+ esac
+ fi
+ if $need_systemd ; then
+ # If running on systemd we should not start httpd without systemd
+ # or systemd will get confused about the status of httpd.
+ echo "Invoking 'systemctl start $APACHE_SYSTEMD_SERVICE'."
+ echo "Use 'systemctl status $APACHE_SYSTEMD_SERVICE' for more info."
+ systemctl start "$APACHE_SYSTEMD_SERVICE"
+ else
+ unset APACHE_STARTED_BY_SYSTEMD
+ $HTTPD ${APACHE_ARGUMENTS} -k "$ARGV"
+ fi
+
+ ERROR=$?
+ ;;
+stop|graceful-stop)
+ $HTTPD ${APACHE_ARGUMENTS} -k "$ARGV"
+ ERROR=$?
+ ;;
+restart|graceful)
+ if $HTTPD ${APACHE_ARGUMENTS} -t 2> /dev/null ; then
+ $HTTPD ${APACHE_ARGUMENTS} -k "$ARGV"
+ else
+ $HTTPD ${APACHE_ARGUMENTS} -t
+ fi
+ ERROR=$?
+ ;;
+startssl|sslstart|start-SSL)
+ echo The startssl option is no longer supported.
+ echo Please edit httpd.conf to include the SSL configuration settings
+ echo and then use "apachectl start".
+ ERROR=2
+ ;;
+configtest)
+ $HTTPD ${APACHE_ARGUMENTS} -t
+ ERROR=$?
+ ;;
+status)
+ get_status | awk ' /process$/ { print; exit } { print } '
+ ;;
+fullstatus)
+ get_status
+ ;;
+*)
+ $HTTPD ${APACHE_ARGUMENTS} "$@"
+ ERROR=$?
+esac
+
+if [ "$ERROR" != 0 ] ; then
+ echo Action \'"$@"\' failed.
+ echo The Apache error log may have more information.
+fi
+exit $ERROR