0

我创建了一个可以从命令行正常工作的 Python 脚本,我使用打印语句来显示一些状态消息。当我尝试使用 launchd 运行脚本时,所有打印输出都不会出现,但脚本工作正常,因为例如它更新了一个 sqlite 数据库而没有问题。

我正在使用以下 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.joanba.maslestorres.cat</string>
    <key>ProgramArguments</key>
    <array>
            <string>python</string>
            <string>/maslestorres.cat/jardiNet_datalogger.py</string>
    </array>
    <key>WorkingDirectory</key>
    <string>/maslestorres.cat/</string>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/maslestorres.cat/log/out.txt</string>
    <key>StandardErrorPath</key>
    <string>/maslestorres.cat/log/err.txt</string>
</dict>
</plist>

假设 print 使用 stdout 所以我希望正常输出到 file /maslestorres.cat/log/out.txt

我做错了什么?

4

1 回答 1

0

我已经能够在 log.txt 文件中看到输出,只是从 python 脚本中刷新缓冲区。我一直在添加 sys.stdout.flush() 我需要立即查看输出的地方。我不清楚的是为什么在启动卸载时,缓冲区丢失并且没有写入日志文件。

于 2013-10-20T06:40:44.330 回答