Apacheのクロスプラットフォーム再起動

Apacheのクロスプラットフォーム再起動

私は、あらゆる*nix OSでApacheを再起動できる単一のコマンドが欲しいです。現在、私はUbuntuで作業していますが、

  • /usr/sbin/apache2ctl
  • /usr/sbin/service
  • いいえapachectl
  • いいえhttpd

Scientific Linux CERN 5は、

  • /usr/sbin/apachectl
  • /etc/init.d/httpd
  • いいえapache2ctl
  • いいえservice

次のようなハックは避けたいwhich service 2>/dev/null || which /etc/init.d/httpd

答え1

apachectl / apache2ctl は、Apache を制御するための Apache 組み込みツールです。これは Apache に付属しており、すべての OS で使用できるため、おそらく適切なツールです。apachectl は
通常 Apache 1.x 用で、apache2ctl は Apache 2.x 用です。SLC5
が Apache 2.x に付属している場合は、かなり奇妙ですが、スクリプトで apachectl と apache2ctl の両方を実行できます。

答え2

どの apachectl がインストールされているかを確認し、適切なものを実行するスクリプトを使用できます。

#!/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

関連情報