【问题标题】:Are there any conditions when launchctl fails to run or load a plist?launchctl 无法运行或加载 plist 时是否有任何情况?
【发布时间】:2016-01-22 04:11:30
【问题描述】:

有时我看到触发命令根本不会加载应用程序。这种情况很少发生,但是否有任何已知条件或情况会导致此命令失败?有没有办法调试launchctl?

launchctl load /Library/LaunchAgents/com.xyz.plist

plist的内容是:

<dict>
<key>Label</key>
<string>com.xyz</string>
<key>ProgramArguments</key>
<array>
    <string>/Applications/xyz.app/Contents/MacOS/xyz</string>
</array>
<key>EnvironmentVariables</key>
<dict>
    <key>OPT</key>
    <string>xyz</string>
</dict>
<key>ExitTimeOut</key>
<integer>10</integer>
<key>KeepAlive</key>
<dict>
    <key>SuccessfulExit</key>
    <false/>
</dict>
<key>RunAtLoad</key>
<true/>
<key>EnableTransactions</key>
<false/>

launchctl dumpstate 显示状态=等待。为什么?

任何帮助都将不胜感激。

【问题讨论】:

    标签: macos launchd launch-daemon launchdagent


    【解决方案1】:

    根据您的 OS X 版本(显然,中断点是 10.10),我已经挖掘了一堆资源可以帮助您以某种方式调试它。

    另外...取决于您的硬件...我不是在开玩笑...“您是否尝试过将其关闭然后再打开?”我曾遇到过糟糕的 Mac Server 机器,它们会因为随机错误而毁掉你的一天,而这些错误会在重启后神奇地消失。

    【讨论】:

    • 嗨,你知道 launchctl 日志在最新的 OSX 10.11 及更高版本上不起作用。重新启动系统确实会加载应用程序,但有时应用程序不会随机出现。这真的是无法解释的随机事件,还是有办法知道系统中是否存在导致它的错误?
    • 设置一些东西来监控“应用程序”是死是活并做出相应的反应,例如使用“nagios”(或类似的),实际上更有效。完全调试问题往往比大多数老板愿意花费的时间要多得多。使用原始 OS X 和原始硬件并从头开始重建会更好。或者,选择一个可靠的 Linux 发行版;例如 CentOS 或 Debian。
    猜你喜欢
    • 2019-09-22
    • 2016-05-15
    • 2019-02-23
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 2021-09-27
    • 2013-12-10
    相关资源
    最近更新 更多