2016-05-23 16 views
0

イムで、それが動作しませ:ここではPythonスクリプトは、端末で動作しますが、私は次のコマンドを使用して、端末からそれを実行すると、OS X上のlaunchdを使用してPythonスクリプトを実行しようとしているのlaunchd

$ /Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 /Users/me/path/to/script.py 

は私ですProgramArgumentsキーの下に同じコマンドを持つlaunchd 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の当初のdidntの仕事なので、私は手動で、端末でそれを実行してみました、と私はエラーを持って、私は彼らのフルでPythonスクリプト内に読み書きされたファイルを参照するために必要なことに気づきました私はそれを修正しました。そのスクリプトは端末で実行されましたが、launchdの問題は解決されませんでした(はい、私はアンロードして複数回ロードしました)。

私はlaunchctl listを実行し、次の私のplistに記載されている1終了コードを見つけ、その後、私は/var/log/system.logをチェックし、エラーメッセージService exited with abnormal code: 1を見つけましたが、それは私が見つけることができるすべてのエラーメッセージです。

「最終変更日」とファインダーの内容に基づいて、Pythonスクリプトでxmlファイルを開くようですが、何も書き込まれません。また、スクリプト内でjsonファイルを開くようには見えません。

このようなことも、端末で手動でうまく動作するので、plistやlaunchdの問題でなければならないと思っています。

+0

あなたのスクリプトが読み書きしようとしているファイルはどこにありますか?どのような権限がありますか? –

+0

これは単なるXMLファイルとjsonファイルで、スクリプトと同じ場所にあります。誰もがフルr/w権限を持っています。両方のファイルの完全なファイルパスがスクリプトで指定されています。最初のエラーが発生した後に実行する必要があることを発見しました。 – chiiidog

+0

launchdaemonまたはlaunchagent(場所も含む)であり、.plist ? 「異常コードでサービス終了:1」エラーについて。 Pythonスクリプトは実際に何をしていますか? Console.appの他のイベントは、関連する可能性のある時間帯に表示されます。 –

答えて

0

解決済み。 StandardErrorPathとStandardOutPathのキーを設定し、スクリプトが投げていたエラーを確認することができました。 xmlファイルを操作するときに、起動時にスクリプトを実行しているときだけ、f.write()f.read()のインスタンス上に少しだけUnicodeEncodeErrorが発生していました。私はwith open('file.xml', 'w') as f:with io.open('file.xml', 'w', encoding='utf8') as f:に置き換え、同じものを読み込みインスタンスに置き換えました。誰も私のIDEとターミナルで正常に動作したが、launchdでは正常に動作していないことを知っていますか?すべて同じインタプリタを使用しています。

関連する問題