그래서 나는 부팅시 파이썬 스크립트를 실행하는 라즈베리 파이에 간단한 서비스를 제공합니다. 또한 export OPSESPORT=XXXX
을 실행하여 env 변수를 설정했습니다. KeyError : 리눅스 서비스에 의해 실행 된 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
으로 서비스를 시작하면 매우 이상합니다. 따라서 키를 액세스 할 수 없습니다. 참고로, 나는 Raspbian GNU/Linux 9 (stretch)에서 Python 2.7.13을 사용하고 있습니다.
추가하십시오. 환경 변수 대신에 paraments를 사용할 것을 제안합니다. 그게 가능하니? – geckos