CONTEXTO
Ubuntu 22.04 Desktop: servidor MQTT
Objetivo: executar script python (paho com logger) como um serviço
A rotina de registro .py testa conforme o esperado (não em um venv):
python3 mqtt2log.py
a linha 6 do script é:import paho.mqtt.client as mqtt
Um arquivo .service é copiado para /etc/system/system:
# run python script as service
# https://unix.stackexchange.com/a/634422/182280e
# copy this .service description to /etc/systemd/system/myscript.service
# /home/user/mqtt2log.py
[Unit]
Description=mqtt2log.py
[Service]
ExecStart=/usr/bin/python3 /home/user/mqtt/mqtt2log.py
[Install]
WantedBy=multi-user.target
OBSERVAÇÕES
ls -l /etc/systemd/system/mqtt2log.service
retorna:
-rwxrwxrwx 1 root root 314 Jan 11 17:41 /etc/systemd/system/mqtt2log.service
sudo systemctl status mqtt2log
retorna:
Jan 31 13:01:30 mqtt systemd[1]: Started mqtt2log.py.
Jan 31 13:01:30 mqtt python3[158388]: Traceback (most recent call last):
Jan 31 13:01:30 mqtt python3[158388]: File "/home/user/mqtt/mqtt2log.py", line 6, in <module>
Jan 31 13:01:30 mqtt python3[158388]: import paho.mqtt.client as mqtt
Jan 31 13:01:30 mqtt python3[158388]: ModuleNotFoundError: No module named 'paho'
Jan 31 13:01:30 mqtt systemd[1]: mqtt2log.service: Main process exited, code=exited, status=1/FAILURE
Jan 31 13:01:30 mqtt systemd[1]: mqtt2log.service: Failed with result 'exit-code'.
As mensagens de erro parecem indicar que o módulo paho não pode ser encontrado na linha 6:import paho.mqtt.client as mqtt
QUESTÕES
Erro retornado:ModuleNotFoundError: No module named 'paho'
Por que o módulo paho não foi encontrado?
Que medidas de diagnóstico podem ser tomadas?
Estou intrigado com o fato de que o script python roda a partir da linha de comando. Talvez isso seja de alguma forma um problema de permissões?
MQTT / Paho INSTALAR
sudo apt update
sudo apt-get install mosquitto
sudo vi /etc/mosquitto/mosquitto.conf
allow_anonymous true
listener 1883
sudo systemctl restart mosquitto
sudo apt install python3-pip
pip3 install paho-mqtt
sudo apt install -y mosquitto-clients