我正在编写一个 python 脚本,该脚本向本地主机 MQTT 代理订阅一些 MQTT 主题,当推送消息时,该脚本将调用同一目录中另一个脚本中的函数,以将更改加载到 SQL 数据库中。
\n在终端中手动运行时,该脚本工作正常:
\npython3 /directory/path/to/file/listen_mqtt.py
但是,我试图让这个文件在 Ubuntu 系统启动时自动执行。我在以下位置创建了一项新服务:
\n/lib/systemd/system/listen_mqtt_py.service
服务描述如下:
\n[Unit]\nDescription=Listen Mqtt\nAfter=mosquitto.service\nWants=network.target\nConflicts=getty@tty1.service\n\n[Service]\nType=simple\nExecStart=/usr/bin/python3 /home/bt/dev/dexter-mqtt-to-sql/listen_mqtt.py\nStandardInput=tty-force\n\n[Install]\nWantedBy=multi-user.target\nRun Code Online (Sandbox Code Playgroud)\n我还启用了该服务并尝试使用以下命令启动该服务:
\nsudo systemctl enable listen_mqtt_py.service
和
\nsudo systemctl start listen_mqtt_py.service
重新启动计算机并尝试手动运行该服务时,我收到以下消息:
\nsudo systemctl status listen_mqtt_py.service\n\xe2\x97\x8f listen_mqtt_py.service - Listen Mqtt\n Loaded: loaded (/lib/systemd/system/listen_mqtt_py.service; enabled; vendor preset: enabled)\n Active: failed (Result: exit-code) since Tue 2020-11-17 13:45:28 AEDT; 14s ago\n Process: 2206 ExecStart=/usr/bin/python3 /home/bt/dev/dexter-mqtt-to-sql/listen_mqtt.py (code=exited, status=1/FAILURE)\n Main PID: 2206 (code=exited, status=1/FAILURE)\n\nNov …Run Code Online (Sandbox Code Playgroud)