РЕДАКТИРОВАТЬ:
Я написал скрипт на Python, который запускает клиент mosquitto с включенными опциями TLS. Все работало нормально, когда я запускаю его из командной строки (без sudo). Теперь он сломался после переустановки некоторых пакетов.
Однако мне нужно было, чтобы сценарий запускался при загрузке системы, поэтому я создал службу SYSTEMD для запуска в качестве демона. Основываясь на отчете о состоянии службы, я делаю вывод, что cert
или key
файлы недоступны, поэтому демон существует с ошибкой. Файлы находятся в том же каталоге, что и скрипт .py. Есть идеи, в чем может быть проблема?
pi@raspberrypi:~/FONA_PROJECT $ sudo systemctl status fonagps.service
● fonagps.service - Vechicle Tracking System
Loaded: loaded (/lib/systemd/system/fonagps.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2018-03-19 22:17:59 UTC; 3s ago
Process: 1526 ExecStart=/usr/bin/python /home/pi/FONA_PROJECT/iot_sub.py (code=exited, status=1/FAILURE)
Main PID: 1526 (code=exited, status=1/FAILURE)
Mar 19 22:17:59 raspberrypi systemd[1]: Started Vechicle Tracking System.
Mar 19 22:17:59 raspberrypi python[1526]: Traceback (most recent call last):
Mar 19 22:17:59 raspberrypi python[1526]: File "/home/pi/FONA_PROJECT/iot_sub.py", line 129, in <module>
Mar 19 22:17:59 raspberrypi python[1526]: client.tls_set(ca_certs=ca_certs, certfile=certfile, keyfile=keyfile, cert_reqs=ssl.CERT_REQUIRED, tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None)
Mar 19 22:17:59 raspberrypi python[1526]: File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 694, in tls_set
Mar 19 22:17:59 raspberrypi python[1526]: context.load_cert_chain(certfile, keyfile)
Mar 19 22:17:59 raspberrypi python[1526]: IOError: [Errno 2] No such file or directory
Mar 19 22:17:59 raspberrypi systemd[1]: fonagps.service: Main process exited, code=exited, status=1/FAILURE
Mar 19 22:17:59 raspberrypi systemd[1]: fonagps.service: Unit entered failed state.
Mar 19 22:17:59 raspberrypi systemd[1]: fonagps.service: Failed with result 'exit-code'.