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

MacOS Ventura下Launchd定时移文件plist失效(错误78)求助

问题描述

尝试通过Launchd配置plist文件,每10秒执行两条zsh命令,将Apple Books及Dropbox根目录的PDF文件移动至~/dropbox/reading/temp文件夹。相关配置与脚本如下:

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>com.david.pdf</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/David/Tools/pdf.txt</string>
    </array>
    <key>StartInterval</key>
    <integer>10</integer>
</dict>
</plist>

zsh脚本(文件路径/Users/David/Tools/pdf.txt)

#!/bin/zsh
mv ~/Library/Mobile\ Documents/iCloud~com~apple~iBooks/Documents/*.pdf ~/dropbox/reading/temp
mv ~/dropbox/*.pdf ~/dropbox/reading/temp

脚本在终端运行正常,但通过Launchd执行时报错78,请问哪里配置有误?


问题分析与修复

报错78属于POSIX退出码EX_CANTCREAT,本质是执行脚本时出现路径解析、权限或文件识别问题,具体问题点和修复方案如下:

  1. 脚本文件扩展名与执行方式不匹配
    你将脚本命名为pdf.txt,虽然终端可以通过zsh调用执行,但Launchd会直接尝试执行该文件,.txt扩展名会导致系统无法识别为可执行脚本。

    • 修复:将脚本文件名改为pdf.sh,并同步更新plist中的ProgramArguments路径:
      <key>ProgramArguments</key>
      <array>
          <string>/Users/David/Tools/pdf.sh</string>
      </array>
      
  2. 脚本未配置可执行权限
    Launchd执行脚本时需要文件具备可执行权限,终端运行时可能通过zsh /path/to/script绕开权限检查,但Launchd不会。

    • 修复:在终端执行以下命令添加权限:
      chmod +x /Users/David/Tools/pdf.sh
      
  3. Launchd环境中~路径解析异常
    Launchd的执行环境没有终端的用户级shell环境变量,~无法被正确解析为用户主目录。

    • 修复:脚本中替换所有~为绝对路径:
      #!/bin/zsh
      mv /Users/David/Library/Mobile\ Documents/iCloud~com~apple~iBooks/Documents/*.pdf /Users/David/dropbox/reading/temp
      mv /Users/David/dropbox/*.pdf /Users/David/dropbox/reading/temp
      
  4. 可选:添加日志便于排查
    若后续仍有问题,可在plist中添加日志输出配置,记录执行过程和错误:

    <key>StandardOutPath</key>
    <string>/Users/David/Library/Logs/pdf_move.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/David/Library/Logs/pdf_move_error.log</string>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:46:30