退出代码:1 launchd 错误

退出代码:1 launchd 错误

我正在尝试运行一项作业,launchd该作业运行一个 shell 脚本,该脚本创建一个 zip 文件,然后我将其备份。

我收到错误:6/26/13 5:04:37.992 PM com.apple.launchd.peruser.501[162]: (com.ian.evernote[18163]) Exited with code: 1

这是我的launchd 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.ian.evernote</string>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <false/>
    </dict>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/user/Dropbox/evernote.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>3600</integer>

    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

这是我的 shell 脚本:

#!/bin/bash

sudo zip -r ~/Documents/evernote_backup /Users/user/Library/Containers/com.evernote.Evernote/Data/Library

shell 脚本在终端中运行良好。我做错了什么?

答案1

您无法在脚本内执行sudo。谁会输入密码?您为什么需要这个?看起来您正在主文件夹内操作,您应该拥有所需的所有权限。

有两种解决方案。

  • 您需要提升权限

将此作业设为启动守护进程而不是代理。确保将路径更改为绝对路径(~将扩展到执行用户的主目录,用于/启动守护进程)。

  • 您无需担心标准权限

不要使用sudo

另外:由于脚本由一行组成,我建议删除该脚本并zip直接调用:

<key>ProgramArguments</key>
<array>
    <string>/usr/bin/zip</string>
    <string>-r</string>
    <string>/Users/user/Documents/evernote_backup</string>
    <string>/Users/user/Library/Containers/com.evernote.Evernote/Data/Library</string>
</array>

相关内容