launchd 不会自动把你的终端重定向合并;若在 plist 里只配置了 StandardOutPath 而漏掉 StandardErrorPath,你会在排错时看到「服务貌似静默失败」。可复现检查:
- 路径前置条件:日志目录必须已存在且运行用户可写;否则 launchd 可能直接拒绝加载任务或在启动瞬间失败。
- 分流策略:生产环境建议
stdout / stderr 分文件,便于用「是否出现 stack trace」快速分诊。
- 与交互式 SSH 对照:你在 SSH 里手动启动能看到报错,而 LaunchAgent 版本看不到——优先怀疑 环境变量与 PATH 差异,而不是业务逻辑。
补充手段:用 log show 或统一日志子系统过滤进程名(需已知 Team ID/子系统时可大幅缩小范围)。不要把「tail 某个文件」当成唯一真源;文件轮转、权限变更会让 tail 指向空壳路径。
- 在机器本机执行
curl -fsS 对 127.0.0.1 的健康 URL,确认与文档一致。
- 仅在 (1) 通过后再做 SSH 本地端口转发,从笔记本复测;若 (1) 失败而 (2) 成功,说明问题在转发或绑定地址,而不是 Gateway。
- 若 HTTP 200 但外部编排仍报不健康,检查超时阈值与冷启动时间:Apple Silicon 上首次拉起解释器与依赖可能显著长于探针间隔。
df -h 与数据卷 日志目录
ls -le@ plist 的
UserName / 实际执行用户
更可能是任务未真正重启(launchctl 仍指向旧 plist)或日志路径指向了只读挂载;用 launchctl print 核对当前加载单元与路径。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/260580.html