使用 Launchd 调用 Python 脚本?

使用 Launchd 调用 Python 脚本?

作为我最初的问题的延续......

在 OSX 中定期备份日志文件?

我正在尝试备份 OSX 计算机和越狱 iPhone 上的日志文件。有人推荐使用 LaunchD 作为解决方案,后来在 Google 上搜索后发现 LingOn 是可以使用的工具。

输出(在我填写字段之后)给了我这个 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.ash.MySuperLaunchd</string>
    <key>ProgramArguments</key>
    <array>
        <string>python</string>
        <string>/Users/ash/Desktop/sendemail.py</string>
    </array>
    <key>StartInterval</key>
    <integer>3600</integer>
</dict>
</plist>

现在通过在终端中调用我的 python 脚本来运行它,将成功地将包含我需要的附件的电子邮件发送到我的收件箱。

但是 LaunchD 就是无法启动,我不知道为什么。

答案1

您需要加载代理。请重新登录,或者launchctl load /path/to/file.plist

RunAtLoadStartInterval默认情况下为 false,因此脚本在加载后几秒内首次运行,在本例中为 3600。

中的路径ProgramArguments需要指向脚本的永久位置,因此它可能不应该位于~/Desktop/。目标脚本不需要可执行。但正如@DanielBeck在评论中正确指出的那样,python /Users/ash/Desktop/sendemail.py首先请检查您是否能够执行,以及shebang行是否正确。

相关内容