【发布时间】:2011-01-03 19:41:07
【问题描述】:
我最近在两台不同的机器上注意到的一点是,当我启动时,通过 MacPorts 安装的 Apache2 似乎已停止启动。诚实的事实是,我不能发誓以前这样做过,但我想我会注意到这一点,因为安装 LaunchDaemon 是我安装过程的一部分。事实上,如果我尝试重新加载 LaunchDaemon,它会失败:
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
org.macports.apache2: Already loaded
除非我手动启动 Apache(使用 sudo apachectl restart),否则在我的进程列表中对“apache2”或“httpd”进行 grep'ing 只会产生以下结果:
$ sudo ps -ef | egrep "apache2|httpd"
0 52 1 0 0:00.06 ?? 0:00.08 /opt/local/bin/daemondo --label=apache2 --start-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart ; --pid=none
1410639199 6960 6792 0 0:00.00 ttys001 0:00.00 egrep apache2|httpd
看起来守护程序本身就位,但没有可执行文件。据我所知/可以告诉,相关的可执行文件(httpd 和 apachectl)是每个人都可以执行的。
有没有其他人注意到这一点?有什么想法吗?
更新
按照下面的要求,我确实执行了launchctl list。列表很长,我不知道如何剪掉它,但我只想说没有列出 org.macports.* 项目。这本身很有趣,因为我的 MySQL 守护程序是以相同的方式加载的。它有效,但也没有出现在列表中。如果真的需要整个输出,请告诉我。
更新
我假设我在 sudo 下执行了 launchctl list,但在 mipadi 下面的评论提示下,我再次尝试确保我这样做了,但我假设不正确。在 sudo 下执行时,出现 MacPorts 项:
51 - org.macports.mysql5
52 - org.macports.apache2
我不确定这是否会有所帮助,但仍然需要更多信息。
更新
我在LaunchDaemons and Environment Variables 提出了一个不同但相关的问题。当我了解更多信息时,我会更新这两个问题。
更新
今天,根据邮件列表输入,我尝试使用通配符主目录。在学术上,它比我想要的更具包容性,但实际情况是我是唯一一个使用这台电脑的人;当然是唯一一个拥有 Apache 配置文件的人。
Include "/Users/*/Dropbox/Application Support/apache/conf.d.osx/*.conf"
Include "/Users/*/Library/Application Support/MacPorts/apache/conf.d/*.conf"
不幸的是……
httpd: Syntax error on line 512 of /opt/local/apache2/conf/httpd.conf: Wildcard patterns not allowed in Include /Users/*/Dropbox/Application Support/apache/conf.d.osx/*.conf
【问题讨论】:
-
您是否使用
sudo执行了launchctl?您必须执行sudo launchctl list才能获取所有 launchctl 项目,包括 MacPorts 项目。 -
确认!请参阅上面的最后更新。感谢您的提示。
标签: apache2 macports apache launchd