mac os不像linux有/etc/init.d/rc.local以及service的方式能够设置程序随机启动,而是使用plist文件管理。linux
plist文件分布在:/System/Library/LaunchDaemons/中的最多,其中apache的httpd程序启动配置文件org.apache.httpd.plist就在这里。shell
但这些配置文件可由程序launchctl设置是否加载。也就是说,在launchctl list命令结果中出现的plist文件才会有效。apache
launchctl须要root权限。ui
禁止其随机启动方法:rest
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plistblog
若是没有任何输出就是成功卸载了。若是要加载,把unload换成load便可。get
第二次运行unload会发现错误:launchctl: Error unloading: org.apache.httpd,这表示已经成功卸载了。博客
若是要查看launchctl用法,能够在shell终端输入launchctl,而后输入help回车。quit退出。it
我在个人mac上操做成功,重启后httpd不会启动了。但奇怪的是当我本身用apachectl启动了httpd后,次日开电脑发现httpd又自动启动了。因而我怀疑是否apachectl脚本里将其load了,打开/usr/sbin/apachectl,发现启动httpd居然使用了launchctl的load方法。class
为了让启动与否的主动权掌握在我本身手里,只好抛弃使用apachectl启动,使用本身写的httpd脚本启动,其实就是里面实现一下start,stop,restart三个条件判断便可,我使用时间长一些,因此稍复杂一些,见附件。
替换后,别忘记再运行一次:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist