我已经使用自制软件安装了apache2.4的php56。除了我无法阻止apache或完全重启它之外,一切都找不到。
这应该停止apache:sudo apachectl -k stop
但是当我查看进程列表时,我看到:ps ax|grep httpd
7269 ?? Ss 0:00.17 /usr/sbin/httpd -D FOREGROUND
7270 ?? S 0:00.02 /usr/sbin/httpd -D FOREGROUND
7273 ?? S 0:00.00 /usr/sbin/httpd -D FOREGROUND
即使是杀戮也不会阻止它:sudo killall httpd
它会杀死httpd,但过了一会儿就会重新开始:ps ax|grep httpd
7684 ?? Rs 0:00.13 /usr/sbin/httpd -D FOREGROUND
7686 s003 S+ 0:00.00 grep httpd
过了一会儿:ps ax|grep httpd
7684 ?? Ss 0:00.15 /usr/sbin/httpd -D FOREGROUND
7687 ?? S 0:00.00 /usr/sbin/httpd -D FOREGROUND
7690 s003 S+ 0:00.00 grep httpd
理想情况:
开始:brew services start apache2
停止:brew services stop apache2
问题是为什么httpd服务是自动启动的,是否有针对此错误的修复程序?
答案 0 :(得分:1)
我怀疑LaunchDaemon或LaunchAgent已设置为KeepAlive。
另外,你加载apache时是否使用sudo brew services
?如果是这样,常规brew services
只与用户代理交互,而不是与系统交互。