我希望有一个命令可以在任何 *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