我試着當我使用下列命令從終端運行它使用運行在OS X上的launchd Python腳本,它的工作原理:Python腳本在終端的作品,但不是的launchd
$ /Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /Users/me/path/to/script.py
這裏是我的啓動了在ProgramArguments項下具有相同命令的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>net.me.my-script</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4</string>
<string>/Users/me/path/to/script.py</string>
</array>
<key>StartInterval</key>
<integer>86400</integer>
</dict>
</plist>
的launchd的最初沒有工作,所以我試圖在終端手動運行它,我得到了一個錯誤,並意識到我需要提及的文件,我在讀和在python腳本及其全部寫入路徑,所以我解決了這個問題。這使腳本運行在終端,但它並沒有解決launchd中的問題(是的,我卸載並加載了多次)。
我跑launchctl list
,發現旁邊列出的我的plist一個1
退出代碼,然後我檢查/var/log/system.log,發現該錯誤消息Service exited with abnormal code: 1
但是這所有的錯誤信息,我可以找到。
基於'最後修改'的日期和來自finder的東西,它似乎在python腳本中打開一個xml文件,但它沒有寫任何東西。它似乎也沒有在腳本中打開json文件。
再一次,所有這些東西都能在終端上手動運行,所以我認爲它必須是plist或launchd問題。
腳本試圖讀取和寫入的文件在哪裏,它們具有什麼權限? –
它們只是一個xml和一個json文件,它們與腳本位於同一位置。他們對每個人都有完整的r/w權限。這兩個文件的完整文件路徑是在腳本中指定的,我發現在發生第一個錯誤後我需要執行此操作。 – chiiidog
它是launchdaemon還是launchagent(位置),以及在.plist上設置了owner:group ?關於「退出異常代碼的服務:1」錯誤; python腳本實際上做了什麼?您應該在可能相關的同一時間在Console.app中查看其他事件。 –