/usr/sbin/apache2ctl is in apache2 2.4.7-1ubuntu4.20.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | #!/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
# 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_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*
$HTTPD ${APACHE_ARGUMENTS} -k $ARGV
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} $ARGV
ERROR=$?
esac
if [ "$ERROR" != 0 ] ; then
echo Action \'"$@"\' failed.
echo The Apache error log may have more information.
fi
exit $ERROR
|