如何修复Python脚本的launchctl状态代码78?

2024-04-29 11:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用prawapi来托管一个bot,用于将Wikipedia每日的线程发布到/r/wikipedaly上,我想我应该使用launchd/launchctl来安排每24小时运行一次的帖子。脚本启动(这是一个正在运行的launchctl进程),但它始终有一些错误的状态代码78。在

我尝试过将plist文件放在LaunchAgents和launchdaemon中,使用sudo启动它,在脚本和启动文件中指定Python env的路径,所有3个都会导致相同的错误代码。我认为这不是Python脚本本身的问题,因为从命令行手动运行它似乎可以很好地工作。在

我的直觉是问题出在plist文件本身,与Python环境规范有关,或者与文件/目录的权限有关。我通过chmod+x给了Python脚本权限,但这可能还不够。在

这是plist文件(StartInterval设置为60用于调试,而不是86400,无论如何都不工作):

在www.nathansbud.wikipedaly网站.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.nathansbud.wikipedaily</string>
        <key>Program</key>
        <string>/Users/zackamiton/Code/Wikipedaily/main.py</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/zackamiton/Code/Wikipedaily/main.py</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StartInterval</key>
        <integer>60</integer>
        <key>StandardErrorPath</key>
        <string>/var/log/wikipedaily.log</string>
        <key>StandardOutPath</key>
        <string>/var/log/wikipedaily.log</string>
        <key>WorkingDirectory</key>
        <string>/Users/zackamiton/Code/Wikipedaily/</string>        
    </dict>
</plist>

从命令行运行它,Reddit post工作正常,但是让launchd执行脚本失败,控制台中显示以下错误消息:

  • 服务无法初始化:18C54:xpcproxy+11287[1534][EB0A8C9B-6A9A-3296-B905-73527C966685]:0xd

  • 服务退出,异常代码:78

它至少每分钟都在运行(根据控制台的输出),但不幸的是,78似乎是一个通用的错误代码,我不太清楚xpcproxy行的含义。在

谢谢你的帮助!提前谢谢!在


Tags: 文件key代码脚本logstringcodeusers