mac os 禁止apache httpd自动启动(转)

mac os不像linux有/etc/init.d/rc.local以及service的方式可以设置程序随机启动,而是使用plist文件管理。

plist文件分布在:/System/Library/LaunchDaemons/中的最多,其中apache的httpd程序启动配置文件org.apache.httpd.plist就在这里。

但这些配置文件可由程序launchctl设置是否加载。也就是说,在launchctl list命令结果中出现的plist文件才会有效。

launchctl需要root权限。

禁止其随机启动方法:

 

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

 

如果没有任何输出就是成功卸载了。如果要加载,把unload换成load即可。

第二次运行unload会发现错误:launchctl: Error unloading: org.apache.httpd,这表示已经成功卸载了。

 

如果要查看launchctl用法,可以在shell终端输入launchctl,然后输入help回车。quit退出。

 

我在我的mac上操作成功,重启后httpd不会启动了。但奇怪的是当我自己用apachectl启动了httpd后,第二天开电脑发现httpd又自动启动了。于是我怀疑是否apachectl脚本里将其load了,打开/usr/sbin/apachectl,发现启动httpd竟然使用了launchctl的load方法。

 

为了让启动与否的主动权掌握在我自己手里,只好抛弃使用apachectl启动,使用自己写的httpd脚本启动,其实就是里面实现一下start,stop,restart三个条件判断即可,我使用时间长一些,所以稍复杂一些,见附件。

 

替换后,别忘记再运行一次:

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

 

posted @ 2015-06-04 10:53  冰岛  阅读(1985)  评论(2编辑  收藏  举报