私は、起動時にPythonスクリプトを実行するRaspberry Piの簡単なサービスを持っています。 export OPSESPORT=XXXX
を実行してenv変数を設定しました。これは、サービスファイルです:KeyError:linuxサービスによって実行されるPythonスクリプトが環境にアクセスできないvar
[Unit]
Description=My desc
After=multi-user.target
[Service]
Type=simple
User=pi
ExecStart=/usr/bin/python /home/pi/path/to/file/somefile.py
Restart=on-failure
[Install]
WantedBy=multi-user.target
そしてsomefile.pyで、私が持っている:
サービスのログをチェックすると、次のエラーにつながるimport os
PORT = int(os.environ['OPSESPORT'])
#other code
:
Traceback (most recent call last):
File line 141, in <module>
main()
File line 83, in main
PORT = int(os.environ['OPSESPORT'])
File in __getitem__
raise KeyError(key)
KeyError: 'OPSESPORT'
この私はちょうどpython somefile.py
スクリプトを実行する場合、それはうまく動作しますが、sudo systemctl start name.service
でサービスを開始すると、スクリプトを実行するので、それはキーにアクセスすることはできませんので超奇妙です。参考までに、私はPython 2.7.13をRaspbian GNU/Linux 9(ストレッチ)で使用しています。
を追加してみてください。環境変数の代わりにパラメタを使うことをお勧めします。それは可能ですか? – geckos