Benutzer:Harry: Unterschied zwischen den Versionen
Harry (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Harry (Diskussion | Beiträge) |
||
Zeile 9: | Zeile 9: | ||
=== [[Benutzer:Harry/test.sh|test.sh]] === | === [[Benutzer:Harry/test.sh|test.sh]] === | ||
<nowiki> | |||
#!/bin/sh -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" | |||
#[ `ls -1 /etc/apache2/sites-enabled/ | wc -l | sed -e 's/ *//;'` -eq 0 ] && \ | |||
#echo "You haven't enabled any sites yet, so I'm not starting apache2." && \ | |||
#echo "To add and enable a host, use addhost and enhost." && exit 0 | |||
#edit /etc/default/apache2 to change this. | |||
NO_START=0 | |||
set -e | |||
if [ -x /usr/sbin/apache2 ] ; then | |||
HAVE_APACHE2=1 | |||
else | |||
echo "No apache MPM package installed" | |||
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 | |||
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" | |||
pidof_apache() { | |||
# if pidof is null for some reasons the script exits automagically | |||
# classified as good/unknown feature | |||
PIDS=`pidof apache2` || true | |||
PID="" | |||
# let's try to find the pid file | |||
# apache2 allows more than PidFile entry in the config but only | |||
PID="" | |||
# let's try to find the pid file | |||
# apache2 allows more than PidFile entry in the config but only | |||
# the last found in the config is used | |||
for PFILE in `grep ^PidFile /etc/apache2/* -r | awk '{print $2}'`; do | |||
if [ -e $PFILE ]; then | |||
cat $PFILE | |||
return 0 | |||
fi | |||
done | |||
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 | |||
echo $PID | |||
return 0 | |||
fi | |||
} | |||
apache_stop() { | |||
if `apache2 -t > /dev/null 2>&1`; then | |||
# if the config is ok than we just stop normaly | |||
$APACHE2 -k stop | |||
else | |||
# if we are here something is broken and we need to try | |||
# to exit as nice and clean as possible | |||
PID=$(pidof_apache) | |||
if [ "${PID}" ]; then | |||
# in this case it is everything nice and dandy | |||
# and we kill apache2 | |||
kill $PID | |||
elif [ "$(pidof apache2)" ]; then | |||
if [ "$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 | |||
} | |||
apache_sync_stop() { | |||
# running ? | |||
PIDTMP=$(pidof_apache) | |||
if $(kill -0 "${PIDTMP:-}" 2> /dev/null); then | |||
PID=$PIDTMP | |||
fi | |||
apache_stop | |||
# wait until really stopped | |||
if [ -n "${PID:-}" ]; then | |||
i=0 | |||
while $(kill -0 "${PID:-}" 2> /dev/null); do | |||
if [ $i = '30' ]; then | |||
break; | |||
else | |||
if [ $i = '0' ]; then | |||
echo -n " waiting " | |||
else | |||
echo -n "." | |||
fi | |||
i=$(($i+1)) | |||
sleep 2 | |||
fi | |||
done | |||
fi | |||
} | |||
# Stupid hack to keep lintian happy. (Warrk! Stupidhack!). | |||
case $1 in | |||
start) | |||
[ -f /etc/apache2/httpd.conf ] || touch /etc/apache2/httpd.conf | |||
[ -d /var/run/apache2 ] || mkdir -p /var/run/apache2 | |||
install -d -o www-data /var/lock/apache2 | |||
#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* | |||
log_begin_msg "Starting web server (apache2)..." | |||
if $APACHE2CTL start; then | |||
log_end_msg 0 | |||
else | |||
log_end_msg 1 | |||
fi | |||
;; | |||
stop) | |||
log_begin_msg "Stopping web server (apache2)..." | |||
if apache_stop; then | |||
log_end_msg 0 | |||
else | |||
log_end_msg 1 | |||
fi | |||
;; | |||
reload) | |||
if ! $APACHE2CTL configtest > /dev/null 2>&1; then | |||
$APACHE2CTL configtest || true | |||
log_end_msg 1 | |||
exit 1 | |||
fi | |||
log_begin_msg "Reloading web server config..." | |||
if pidof_apache; then | |||
if $APACHE2CTL graceful $2 ; then | |||
log_end_msg 0 | |||
else | |||
log_end_msg 1 | |||
fi | |||
fi | |||
;; | |||
restart | force-reload) | |||
log_begin_msg "Forcing reload of web server (apache2)..." | |||
if ! apache_sync_stop; then | |||
log_end_msg 1 | |||
fi | |||
if $APACHE2CTL start; then | |||
log_end_msg 0 | |||
else | |||
log_end_msg 1 | |||
fi | |||
;; | |||
*) | |||
log_success_msg "Usage: /etc/init.d/apache2 {start|stop|restart|reload|force-reload}" | |||
;; | |||
esac | |||
</nowiki> | |||
=== [[Benutzer:Harry/test.txt|txt]] === | === [[Benutzer:Harry/test.txt|txt]] === |
Version vom 10. März 2009, 13:44 Uhr
Harry
sacht au wat
Neu
Neue Seite?
Nicht wirklich!
test.sh
#!/bin/sh -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" #[ `ls -1 /etc/apache2/sites-enabled/ | wc -l | sed -e 's/ *//;'` -eq 0 ] && \ #echo "You haven't enabled any sites yet, so I'm not starting apache2." && \ #echo "To add and enable a host, use addhost and enhost." && exit 0 #edit /etc/default/apache2 to change this. NO_START=0 set -e if [ -x /usr/sbin/apache2 ] ; then HAVE_APACHE2=1 else echo "No apache MPM package installed" 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 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" pidof_apache() { # if pidof is null for some reasons the script exits automagically # classified as good/unknown feature PIDS=`pidof apache2` || true PID="" # let's try to find the pid file # apache2 allows more than PidFile entry in the config but only PID="" # let's try to find the pid file # apache2 allows more than PidFile entry in the config but only # the last found in the config is used for PFILE in `grep ^PidFile /etc/apache2/* -r | awk '{print $2}'`; do if [ -e $PFILE ]; then cat $PFILE return 0 fi done 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 echo $PID return 0 fi } apache_stop() { if `apache2 -t > /dev/null 2>&1`; then # if the config is ok than we just stop normaly $APACHE2 -k stop else # if we are here something is broken and we need to try # to exit as nice and clean as possible PID=$(pidof_apache) if [ "${PID}" ]; then # in this case it is everything nice and dandy # and we kill apache2 kill $PID elif [ "$(pidof apache2)" ]; then if [ "$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 } apache_sync_stop() { # running ? PIDTMP=$(pidof_apache) if $(kill -0 "${PIDTMP:-}" 2> /dev/null); then PID=$PIDTMP fi apache_stop # wait until really stopped if [ -n "${PID:-}" ]; then i=0 while $(kill -0 "${PID:-}" 2> /dev/null); do if [ $i = '30' ]; then break; else if [ $i = '0' ]; then echo -n " waiting " else echo -n "." fi i=$(($i+1)) sleep 2 fi done fi } # Stupid hack to keep lintian happy. (Warrk! Stupidhack!). case $1 in start) [ -f /etc/apache2/httpd.conf ] || touch /etc/apache2/httpd.conf [ -d /var/run/apache2 ] || mkdir -p /var/run/apache2 install -d -o www-data /var/lock/apache2 #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* log_begin_msg "Starting web server (apache2)..." if $APACHE2CTL start; then log_end_msg 0 else log_end_msg 1 fi ;; stop) log_begin_msg "Stopping web server (apache2)..." if apache_stop; then log_end_msg 0 else log_end_msg 1 fi ;; reload) if ! $APACHE2CTL configtest > /dev/null 2>&1; then $APACHE2CTL configtest || true log_end_msg 1 exit 1 fi log_begin_msg "Reloading web server config..." if pidof_apache; then if $APACHE2CTL graceful $2 ; then log_end_msg 0 else log_end_msg 1 fi fi ;; restart | force-reload) log_begin_msg "Forcing reload of web server (apache2)..." if ! apache_sync_stop; then log_end_msg 1 fi if $APACHE2CTL start; then log_end_msg 0 else log_end_msg 1 fi ;; *) log_success_msg "Usage: /etc/init.d/apache2 {start|stop|restart|reload|force-reload}" ;; esac