Mac OS 禁止apache httpd自动启动

Apple OS
回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

Mac OS 禁止apache httpd自动启动

文章 yehlu »

https://maoxian.de/2014/04/1096.html
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三个条件判断即可,我使用时间长一些,所以稍复杂一些,见附件。

apachectl.tar.gz

替换后,别忘记再运行一次:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

代碼: 選擇全部

551-Mac-mini:auto yehlu$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
551-Mac-mini:auto yehlu$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
回覆文章

回到「Mac OS X」