Apache 跨平台重启

Apache 跨平台重启

我希望有一个命令可以在任何 *nix 操作系统上重新启动 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 附带的,并且是所有操作系统上的必备工具。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

相关内容