Запуск Python-скрипта с launchd не дает мне ошибок и не выводит только код завершения 78 - PullRequest
0 голосов
/ 23 октября 2018

поэтому я написал скрипт на python, который я пытаюсь запустить с помощью launchd.Скрипт python подключается к Интернету, а затем записывает в файл JSON по завершении.Он запускается в терминале и записывает JSON-файл в качестве вывода, так что это работает.

Когда я пытался настроить plist с помощью launchd, я загружаю его с launchctl load /Library/LaunchAgents/com.data.plist.

Я не получаю никаких ошибок в outpath или errorpath, но JSON никогда не пишется, предполагая, что он не завершает сценарий.Затем я немедленно запускаю его в терминале, чтобы проверить, что он не подключен к Интернету, и он работает.

Я протестировал launchctl list | grep com.data и получил статус 78, который, я считаю, является просто кодом выхода, который на самом деле не помогает.Мой 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.data</string>
<key>ProgramArguments</key>
<array>
    <string>/usr/bin/python3 </string>
    <string>/Users/ben/Documents/data.py</string>
</array>
<key>StandardOutPath</key>
<string>/Users/ben/Documents/pingfloyd.log</string>
<key>StandardErrorPath</key>
<string>/Users/ben/Documents/pingfloyderror.log</string>
<key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>23</integer>
        <key>Minute</key>
        <integer>48</integer>
    </dict>
</dict>

`

Я не уверен, правильно ли я использую линию Шебанга.Я попытался передать его в свойстве arguments, но я где-то читал, чтобы использовать #! / Usr / bin / env python3, что, как я думал, было тем же, что и здесь, но я не знаю, где разместитьэто либо в скрипте Python, либо в скрипте plist.У кого-нибудь есть идеи?

...