脚本不会在启动时生成输出

时间:2013-10-18 16:25:45

标签: python printing launchd

我已经创建了一个可以从命令行运行良好的Python脚本,我使用print语句显示一些状态消息。当我尝试使用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,所以我希望正常输出转到文件/maslestorres.cat/log/out.txt

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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