重新启动Apache的方式不同?


11

我在这里有一个Apache问题。

在我作为开发人员的整个职业生涯中,我一直在像这样重新启动Apache:

sudo /etc/init.d/apache2 restart

我今天刚刚部署了我的第一个Rails应用程序,但是我无法让Apache在主机上重新启动。当我以这种方式尝试时,Apache会尝试重新启动,但最终会挂起。

但是,这很好用:

sudo apachectl restart

这两种技术之间有什么区别?我以为后者最好是第一种“语法糖”,但事实并非如此,因为后者有效而前者却没有。

如果相关(并且我怀疑可能如此),那么此Rails应用程序将使用Phusion Passenger。我以前的开发经验(以前的方法很好用)主要是使用PHP。我对Rails很陌生。

有问题的服务器运行Ubuntu 11.04(Natty)。


1
另一个替代方法是服务apache2重新启动,尽管我不确定这与之前的2是否有任何不同
Phil

Answers:


6
sudo /etc/init.d/apache2 restart

此方法使用Linux发行版的init脚本重新启动该过程。这些脚本在启动时运行以启动apache。

sudo apachectl restart

此方法使用apachectl控制程序。几乎在每种情况下,我都会建议使用apachectl来操纵apache守护程序。您可以更好地控制进程的重新启动方式(请参阅正常与重新启动),配置验证选项以及获取状态信息的方法。

使用init脚本重新启动apache和apachectl之间的主要区别在于apachectl是专门设计用来允许管理员控制apache的,而init脚本则被设计为Unix在内核和init daeamon加载后启动进程的通用方式。

编辑:不幸的是,我不知道如何解决Rails或Phusion Passenger的问题。尝试查看您的Apache日志以获取线索。


2
确实,您认为操作系统重新启动且服务apache2启动不起作用时该怎么办?使用apachectl可以很好地进行测试和开发工作,但是运行将要引起问题的服务器。将其粘贴在rc.local中也不是解决方案。
卡沙尼2011年

我应该提到的是,我仅回答一半的问题:两种重新启动apache的方法之间的区别。不幸的是,我并不了解Rails的全部知识。

谢谢您的帮助。这为我清除了两者之间的差异。关于Rails的东西,我在发布之前实际上已经解决了。实际上,apachectl确实像冠军一样工作,而init.d方法却没有。所以现在我知道了!谢谢。
克里斯·艾伦·莱恩
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.