Ale*_*lex 2 debian raspberry-pi raspbian systemctl
首先是这样做的:
systemctl stop mosquitto
update-rc.d mosquitto remove
rm /etc/init.d/mosquitto
Run Code Online (Sandbox Code Playgroud)
单元文件如下:
[Unit]
Description=MQTT v3.1 message broker
After=network.target
Requires=network.target
[Service]
Type=simple
ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
的结果:
sudo systemctl status mosquitto -l
Run Code Online (Sandbox Code Playgroud)
是:
? mosquitto.service - MQTT v3.1 message broker
Loaded: loaded (/etc/systemd/system/mosquitto.service; enabled)
Active: failed (Result: start-limit) since Sun 2017-01-01 19:44:03 GMT; 3min 23s ago
Process: 683 ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf (code=exited, status=1/FAILURE)
Main PID: 683 (code=exited, status=1/FAILURE)
Jan 01 19:44:03 raspberrypi systemd[1]: Unit mosquitto.service entered failed state.
Jan 01 19:44:03 raspberrypi systemd[1]: mosquitto.service holdoff time over, scheduling restart.
Jan 01 19:44:03 raspberrypi systemd[1]: Stopping MQTT v3.1 message broker...
Jan 01 19:44:03 raspberrypi systemd[1]: Starting MQTT v3.1 message broker...
Jan 01 19:44:03 raspberrypi systemd[1]: mosquitto.service start request repeated too quickly, refusing to start.
Jan 01 19:44:03 raspberrypi systemd[1]: Failed to start MQTT v3.1 message broker.
Jan 01 19:44:03 raspberrypi systemd[1]: Unit mosquitto.service entered failed state.
Run Code Online (Sandbox Code Playgroud)
我已经做了很多谷歌搜索,并尝试了一些类似的单元文件,但似乎没有任何效果。
手动运行该命令 ( /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf) 给出:
Error: Unable to open log file /var/log/mosquitto/mosquitto.log for writing.
Error found at /etc/mosquitto/mosquitto.conf:11.
Error: Unable to open configuration file.
Run Code Online (Sandbox Code Playgroud)
奇怪的是,运行/usr/sbin/mosquitto,即不指定 .conf 文件,工作正常。/etc/mosquitto/mosquitto.conf 是默认的 .conf 文件,所以即使我没有指定它也应该使用它......
如果出现问题,一个好的开始通常是查看日志文件(假设所有命令都以 root 身份运行):
journalctl -u mosquitto
Run Code Online (Sandbox Code Playgroud)
现在您的特定错误 ( Error: Unable to open log file /var/log/mosquitto/mosquitto.log for writing.) 暗示您遇到了权限问题。
mosquitto运行守护程序的用户。注意:如果您在错误的用户下运行文件创建过程,很容易获得生成文件的错误权限(仅一次就足够了 - 例如在测试期间)
| 归档时间: |
|
| 查看次数: |
8810 次 |
| 最近记录: |