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

관련 정보