Advertising
Paste Description for Someone
/etc/init.d/apache2
- Someone
- Tuesday, March 20th, 2007 at 7:20:16pm UTC
- #!/bin/bash -e
- #
- # apache2 This init.d script is used to start apache2.
- # It basically just calls apache2ctl.
- ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"
- #edit /etc/default/apache2 to change this.
- NO_START=0
- set -e
- if [ -x /usr/sbin/apache2 ] ; then
- HAVE_APACHE2=1
- else
- exit 0
- fi
- . /lib/lsb/init-functions
- test -f /etc/default/rcS && . /etc/default/rcS
- test -f /etc/default/apache2 && . /etc/default/apache2
- if [ "$NO_START" != "0" -a "$1" != "stop" ]; then
- [ "$VERBOSE" != "no" ] && log_warning_msg "Not starting apache2 - edit /etc/default/apache2 and change NO_START to be 0.";
- exit 0;
- fi
- APACHE2="$ENV /usr/sbin/apache2"
- APACHE2CTL="$ENV /usr/sbin/apache2ctl"
- apache_stop() {
- PID=""
- PIDFILE=""
- AP_CONF=/etc/apache2/apache2.conf
- # apache2 allows more than PidFile entry in the config but only the
- # last found in the config is used; we attempt to follow includes
- # here, but only first-level includes are supported, not nested ones
- for i in $AP_CONF `awk '$1 ~ /^\s*[Ii]nclude$/ && $2 ~ /^\// {print $2}' $AP_CONF`; do
- PIDFILE=`grep -i ^PidFile $i | tail -n 1 | awk '{print $2}'`
- if [ -e "$PIDFILE" ]; then
- PID=`cat $PIDFILE`
- fi
- done
- errors=`$APACHE2 -t 2>&1`
- if [ $? = 0 ]; then
- # if the config is ok than we just stop normaly
- if [ -n "$PID" ]
- then
- $APACHE2CTL stop
- CNT=0
- while [ 1 ]
- do
- CNT=$(expr $CNT + 1)
- [ ! -d /proc/$PID ] && break
- if [ $CNT -gt 60 ]
- then
- if [ "$VERBOSE" != "no" ]; then
- echo " ... failed!"
- echo "Apache2 failed to honor the stop command, please investigate the situation by hand."
- fi
- return 1
- fi
- sleep 1
- done
- else
- if [ "$VERBOSE" != "no" ]; then
- echo -n " ... no pidfile found! not running?"
- fi
- fi
- else
- [ "$VERBOSE" != "no" ] && echo "$errors"
- # if we are here something is broken and we need to try
- # to exit as nice and clean as possible
- # if pidof is null for some reasons the script exits automagically
- # classified as good/unknown feature
- PIDS=`pidof apache2` || true
- REALPID=0
- # if there is a pid we need to verify that belongs to apache2
- # for real
- for i in $PIDS; do
- if [ "$i" = "$PID" ]; then
- # in this case the pid stored in the
- # pidfile matches one of the pidof apache
- # so a simple kill will make it
- REALPID=1
- fi
- done
- if [ $REALPID = 1 ]; then
- # in this case everything is nice and dandy
- # and we kill apache2
- kill $PID
- else
- # this is the worst situation... just kill all of them
- #for i in $PIDS; do
- # kill $i
- #done
- # Except, we can't do that, because it's very, very bad
- if [ "$PIDS" ] && [ "$VERBOSE" != "no" ]; then
- echo " ... failed!"
- echo "You may still have some apache2 processes running. There are"
- echo "processes named 'apache2' which do not match your pid file,"
- echo "and in the name of safety, we've left them alone. Please review"
- echo "the situation by hand."
- fi
- return 1
- fi
- fi
- }
- # Stupid hack to keep lintian happy. (Warrk! Stupidhack!).
- case $1 in
- start)
- [ -f /etc/apache2/httpd.conf ] || touch /etc/apache2/httpd.conf
- # ssl_scache shouldn't be here if we're just starting up.
- [ -f /var/run/apache2/ssl_scache ] && rm -f /var/run/apache2/*ssl_scache*
- # /var/run and /var/lock could be on a tmpfs
- [ ! -d /var/run/apache2 ] && mkdir /var/run/apache2
- [ ! -d /var/lock/apache2 ] && mkdir /var/lock/apache2
- # Make sure /var/lock/apache2 has the correct permissions
- chown www-data /var/lock/apache2
- log_begin_msg "Starting apache 2.0 web server..."
- if $APACHE2CTL startssl; then
- log_end_msg 0
- else
- log_end_msg 1
- fi
- ;;
- stop)
- log_begin_msg "Stopping apache 2.0 web server..."
- if apache_stop; then
- log_end_msg 0
- else
- log_end_msg 1
- fi
- ;;
- reload)
- log_begin_msg "Reloading apache 2.0 configuration..."
- if $APACHE2CTL graceful $2 ; then
- log_end_msg 0
- else
- log_end_msg 1
- fi
- ;;
- restart | force-reload)
- log_begin_msg "Forcing reload of apache 2.0 web server..."
- if ! apache_stop; then
- log_end_msg 1
- fi
- if $APACHE2CTL startssl; then
- log_end_msg 0
- else
- log_end_msg 1
- fi
- ;;
- status)
- exit 4
- ;;
- *)
- echo "Usage: /etc/init.d/apache2 start|stop|restart|reload|force-reload" >&2
- exit 2
- ;;
- esac
advertising
Update the Post
Either update this post and resubmit it with changes, or make a new post.
You may also comment on this post.
Please note that information posted here will not expire by default. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.