Plattformübergreifender Neustart von Apache

Plattformübergreifender Neustart von Apache

Ich hätte gerne einen einzigen Befehl, der Apache auf jedem *nix-Betriebssystem neu startet. Derzeit arbeite ich mit Ubuntu, das

  • /usr/sbin/apache2ctl
  • /usr/sbin/service
  • NEINapachectl
  • NEINhttpd

und Scientific Linux CERN 5, das

  • /usr/sbin/apachectl
  • /etc/init.d/httpd
  • NEINapache2ctl
  • NEINservice

Ich möchte einen Hack wie diesen vermeiden.which service 2>/dev/null || which /etc/init.d/httpd

Antwort1

apachectl / apache2ctl ist das in Apache integrierte Tool zur Steuerung von Apache. In Ihrem Fall ist es wahrscheinlich das richtige Tool, da es mit Apache geliefert wird und auf allen Betriebssystemen vorhanden ist.
apachectl ist normalerweise für Apache 1.x und apache2ctl für Apache 2.x.
Wenn SLC5 mit Apache 2.x geliefert wird, ist es ziemlich seltsam, aber Sie könnten sowohl apachectl als auch apache2ctl in Ihrem Skript ausführen.

Antwort2

Sie könnten ein Skript verwenden, das prüft, welches Apachectl installiert ist, und dann das entsprechende ausführen.

#!/bin/bash

if [ -e /usr/sbin/apacche2ctl ]
then
    /usr/sbin/apache2ctl restart
elif [ -e /usr/sbin/apachectl ]
then
    /usr/sbin/apachectl restart
else
    echo "No Apache control program found"
fi

verwandte Informationen