
모든 *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