如何在OS X上启动启动的日志记录?


35

如何在OS X 10.6上激活启动的日志记录?

我添加了一个无法正常启动的新守护进程(状态为1)。

我想调试问题,但找不到launchd日志,它们不在中/var/log/launchd.log

Answers:


26

我找到了解决方案

 sudo launchctl log level debug 

在此之后

 tail -f /var/log/system.log

1
我已经意识到这个操作系统需要管理员,就像其他任何东西一样。经过一天的尖叫“ WTF冗长的标志在哪里!” OSX固然不错,但是要掌握它却很棘手。Thx +1
嬉皮士2010年

仅供参考,FYI:这也适用于OS X 10.7.2。谢谢。
艾伦·史密斯

我的Leopard服务器一直存在问题,我认为启动的plist出了点问题(尽管相同的plist在Snow Leopard中也可以使用)。我碰巧发现了它,它的工作原理就像是魅力:)
icasimpan 2012年

27
自从10.10优胜美地开始,此功能不再有效。launchctl版本:Darwin System Bootstrapper 2.0.0:2014
JeanMertz

9
@JeanMertz-还有其他选择吗?
Umang 2015年

20

如果您在启动的plist文件中包含以下几行,则假设您要尝试记录自己的进程而不是自行启动。

<key>StandardOutPath</key>
<string>/path/to/logfile.log</string>
<key>StandardErrorPath</key>
<string>/path/to/another_logfile.log</string>

并重新加载该过程,只要脚本运行,您在脚本内部进行的任何日志记录或打印都将捕获在这两个文件之一中。虽然旋转文件似乎由您决定。如您所料,如果在两个实例中都使用相同的文件,它将把error和stdout记录到同一位置。

请参阅:创建启动守护程序和代理程序中的调试启动的作业


17

在OS X 10.11(El Capitan)上,sudo launchctl debug <service-target> --stdout --stderr如果您不想使用@peter建议的文件系统选项,则可以启用一次性记录。

当前的实现中有很多不同之处launchctl,并且<service-target>有点奇怪。例如,假设我有一个在本地配置的本地服务~/Library/LaunchAgents/dev.localmon.plist,该服务具有“ label” dev.localmon。它<service-target>gui/$UID/dev.localmon$UID您的用户ID 在哪里,由于您在CLI上运行它,因此您的外壳程序将为您插值。

因此,假设我的dev.localmon服务在启动时崩溃了,那我可以调用以下命令,以launchctl在下次(且仅在下一次)启动该服务时将进程的stdout和stderr 通过管道传递到我的shell中:

sudo launchctl debug gui/$UID/dev.localmon --stdout --stderr

由于这与开放式TTY挂在一起,因此请转到另一个终端并运行:

launchctl start dev.localmon
# start is a legacy command and doesn't use the fancy new service-target notation

然后,回到第一个终端,您应该看到输出。(奇怪的是,当服务进程终止时,它不会关闭,因此您必须按Ctrl-C。)

顺便说一句,一旦使用之前破坏服务的PATH或环境修复了配置文件,launchctl unload ~/Library/LaunchAgents/dev.localmon.plist && launchctl load ~/Library/LaunchAgents/dev.localmon.plist由于该文档的声称uncache子命令具有以下作用,您仍然必须使用旧的两步操作:

命令尚未实现。

Yay对于Apple的工作后发布策略:“快速行动,打破常规”


sudo launchctl debugCould not find domain for我一起退出
汤姆·
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.