首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lion Server上Apache的平滑重启

Lion Server上Apache的平滑重启
EN

Stack Overflow用户
提问于 2012-04-02 19:25:45
回答 1查看 7.3K关注 0票数 3

我最近将我的Mac操作系统从Lion升级到Lion Server,这会改变启动Apache时读取httpd.conf设置的方式。特别是,Server.app进程设置了WEBSHARING_ON和MACOSXSERVER等环境变量,以便在启动Apache时读取额外的模块和文件。

因此,现在,要重新启动Apache服务器并加载所有正确的设置和模块,我必须使用命令:-

代码语言:javascript
复制
sudo serveradmin stop web && sudo serveradmin start web

在此之前,我会运行:

代码语言:javascript
复制
sudo apachectl -S
sudo apachectl graceful

到目前为止,我更喜欢后一种方法。首先,该命令返回的速度要快得多,而且我还认为apache / httpd服务器进程不会完全终止,只是重新加载了设置。

那么,有没有办法在Lion Server中正常地重启Apache呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-16 22:03:44

答案是否定的。

'apachectl‘程序实际上只是一个shell脚本,所以(在意识到这一点后)很容易看出它在做什么,以及为什么它没有做我期望的事情。

当在Mac上重启Apache (优雅地或其他方式)时,相关的启动per作业只是卸载并重新加载,我想这并不是按照平稳重启的official Apache description

USR1或graceful信号会导致父进程建议子进程在其当前请求之后退出(如果它们没有提供任何服务,则立即退出)

apachectl -S没有显示已配置的虚拟服务器的原因是,这个命令不是由/System/Library/LaunchDaemons/org.apache.httpd.plist运行的,因此不会加载在apachectl -S中设置的环境变量。

因此,apachectl gracefulapachectl restart和其他命令确实加载了正确的变量,因此可以正确读取配置文件,但并非所有命令都默认这样做。

为了克服这个问题,我手动编辑了/usr/sbin/apachectl,如下所示。我所做的只是在适当的地方添加了"-D MACOSXSERVER -D WEBSERVICE_ON“。

代码语言:javascript
复制
case $ARGV in
start)
    run_launchctl load -w $LAUNCHD_JOB
    ERROR=$?
    ;;
stop|graceful-stop)
    run_launchctl unload -w $LAUNCHD_JOB
    ERROR=$?
    ;;
restart|graceful)
    run_launchctl unload -w $LAUNCHD_JOB 2> /dev/null
    run_launchctl load -w $LAUNCHD_JOB
    ERROR=$?
    ;;
startssl|sslstart|start-SSL)
    echo The startssl option is no longer supported.
    echo Please edit httpd.conf to include the SSL configuration settings
    echo and then use "apachectl start".
    ERROR=2
    ;;
configtest)
    $HTTPD -t -D MACOSXSERVER -D WEBSERVICE_ON
    ERROR=$?
    ;;
status|fullstatus)
    echo Go to $STATUSURL in the web browser of your choice.
    echo Note that mod_status must be enabled for this to work.
    ;;
*)
    $HTTPD $ARGV -D MACOSXSERVER -D WEBSERVICE_ON
    ERROR=$?
esac
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9975540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档