You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Ventura 13.4.1下Launch Daemon重启后无法加载的求助

macOS Ventura 13.4.1下Launch Daemon重启不加载的修复方案

问题背景

原本可随Mac重启自动加载的Launch Daemon,在升级到macOS Ventura 13.4.1后失效。排查发现plist文件带有com.apple.quarantine隔离属性,执行sudo xattr -d com.apple.quarantine移除属性后,问题仍未解决。

plist文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.me.dowork</string>
    <key>WorkingDirectory</key>
    <string>/Users/me</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/python3.9</string>
        <string>/usr/local/bin/dowork_daemon</string>
    </array>
    <key>StartCalendarInterval</key>
    <array>
        <dict>
            <key>Minute</key>
            <integer>00</integer>
            <key>Hour</key>
            <integer>14</integer>
            <key>Weekday</key>
            <integer>1</integer>
        </dict>
        <dict>
            <key>Minute</key>
            <integer>00</integer>
            <key>Hour</key>
            <integer>14</integer>
            <key>Weekday</key>
            <integer>4</integer>
        </dict>
    </array>
    <key>UserName</key>
    <string>me</string>
    <key>StandardErrorPath</key>
    <string>/Users/me/workdir/dowork.err</string>
    <key>StandardOutPath</key>
    <string>/Users/me/workdir/dowork.out</string>
</dict>
</plist>

排查与修复步骤

1. 检查所有扩展属性

除隔离属性外,可能存在其他限制属性(如com.apple.macl),执行命令查看完整属性列表:

sudo xattr -l /Library/LaunchDaemons/org.me.dowork.plist

若发现可疑属性,用sudo xattr -d 属性名 文件名移除。

2. 验证plist语法正确性

plist语法错误会被launchd拒绝加载,执行验证命令:

plutil -lint /Library/LaunchDaemons/org.me.dowork.plist

输出OK则语法正常,否则根据提示修复XML格式问题。

3. 手动加载并测试

直接手动加载daemon,查看是否有报错:

# 加载daemon
sudo launchctl bootstrap system /Library/LaunchDaemons/org.me.dowork.plist
# 检查加载状态
launchctl list | grep org.me.dowork

加载失败时终端会直接输出错误信息,按提示修复(如路径不存在、权限不足等)。

4. 检查程序与目录权限

  • 确认/usr/local/bin/python3.9和/usr/local/bin/dowork_daemon存在且有可执行权限:
    ls -l /usr/local/bin/python3.9 /usr/local/bin/dowork_daemon
    
    权限不足时执行sudo chmod +x /usr/local/bin/dowork_daemon添加可执行权限。
  • 确认/Users/me/workdir目录存在且用户me有读写权限:
    ls -ld /Users/me/workdir
    
    目录不存在时执行mkdir -p /Users/me/workdir && chown me:staff /Users/me/workdir创建并设置权限。

5. 查看系统日志定位问题

通过系统日志查看launchd加载daemon的具体错误:

log show --predicate 'process == "launchd" && contains(message, "org.me.dowork")' --info --last 1h

日志会明确显示加载失败原因(如权限被拒、路径错误、依赖缺失等),针对性修复即可。

6. 确保daemon已启用

执行命令确保daemon处于启用状态:

sudo launchctl enable system/org.me.dowork

重启Mac后,再次用launchctl list | grep org.me.dowork验证是否自动加载。


内容的提问来源于stack exchange,提问作者robt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:33:13