禁用Apache自动启动


17

我正在重新安装10.9,默认Apache服务器是org.apache.httpd: Already loaded每次启动后。有没有办法禁用该自动启动功能?

Answers:


27

OS X提供launchctl了控制在引导时启动哪些守护程序的功能。

要停止并禁用Apache:

  1. 开放终端
  2. 键入以下命令(在sudo请求时输入您的登录密码):

    sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
    

关于launchctl-w选项

-w选项是停止/禁用Apache的灵丹妙药。它会告诉launchctl您执行其工作,而不考虑任何其他配置设置,否则将阻止其卸载服务,如中所述man launchctl

-w       Overrides the Disabled key and sets it to false or true for the load and
         unload subcommands respectively. In previous versions, this option would
         modify the configuration file. Now the state of the Disabled key is stored
         elsewhere on- disk in a location that may not be directly manipulated by any
         process other than launchd.

(事实证明,在OS X Mavericks(10.9)中,“磁盘上的其他位置”是/private/var/db/launchd.db/com.apple.launchd/overrides.plist。)

-w选项是必不可少的,如果你开始的Apache apachectl start:如解释在这个超级用户答案apachectl不仅可以启动Apache,还可以进行如下修改/private/var/db/launchd.db/com.apple.launchd/overrides.plist

<key>org.apache.httpd</key>
<dict>
        <key>Disabled</key>
        <false/>
</dict>

在这种情况下,您还可以使用apachectl

sudo apachectl stop

停止Apache并设置Disabledtrue


我尝试过,但是每次运行sudo apachectl start启动守护程序后,它似乎都在重新启动后再次被激活。
直到2014年

试试-wsudo launchctl -w unload ...。如果没有帮助,您可以发布输出ps -ef|grep httpd|grep -v grep吗?
jaume 2014年

我尝试-w过,同样的结果。输出如下:pastebin.com/h14t8fEv
直到

谢谢,是否sudo launchctl1 ...返回错误消息?你能后的输出grep apache /var/log/com.apple.launchd/launchd-shutdown.system.logsudo grep apache /var/log/system.log
jaume 2014年

是的:sudo: launchctl1: command not found这是输出:pastebin.com/raw.php?i=zxKvYV4i
直到
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.