mosquitto求医之路(2):mosquitto倒下了
装好的mosquitto 服务终于出问题了,在安装好其他软件后,重启了一次服务器,结果mosquitto服务就起不来了。
--查看状态
localhost:~ # systemctl status mosquitto
× mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker
Loaded: loaded (/usr/lib/systemd/system/mosquitto.service; enabled; preset: disabled)
Active: failed (Result: exit-code) since Fri 2025-09-19 20:54:23 CST; 7s ago
Duration: 99ms
Docs: man:mosquitto.conf(5)
man:mosquitto(8)
Process: 127830 ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf (code=exited, status=13)
Main PID: 127830 (code=exited, status=13)
CPU: 98ms
Sep 19 20:54:23 localhost systemd[1]: Started Mosquitto MQTT v3.1/v3.1.1 Broker.
Sep 19 20:54:23 localhost mosquitto[127830]: 1758286463: Error: Unable to open log file /var/log/mosquitto/mosquitto.log for writing.
Sep 19 20:54:23 localhost mosquitto[127830]: 1758286463: Error: Unable to open pwfile "/etc/mosquitto/passwd".
Sep 19 20:54:23 localhost mosquitto[127830]: 1758286463: Error opening password file "/etc/mosquitto/passwd".
提示是文件权限问题,查看日志里面的显示也是提示文件权限问题。前面安装的时候已经遇到,可是前面已经解决过了!
localhost:/var/log/mosquitto # cat mosquitto.log
1758250398: Error: Unable to open pwfile "/etc/mosquitto/passwd".
1758250398: Error opening password file "/etc/mosquitto/passwd".
--检查文件权限,没有看出mosquitto没有权限啊!
localhost:/etc/mosquitto # cd /var/log/mosquitto
localhost:/var/log/mosquitto # ll -tr
total 28
-rw------- 1 mosquitto mosquitto 25544 Sep 19 15:39 mosquitto.log
localhost:/var/log/mosquitto # ls -ld /var/log/mosquitto
drwxr-xr-x 1 mosquitto mosquitto 26 Sep 19 10:53 /var/log/mosquitto
--老方法,再重设所有文件的权限
localhost:/var/log/mosquitto # systemctl stop mosquitto
localhost:/var/log/mosquitto # chown -R mosquitto:mosquitto /var/log/mosquitto/
localhost:/var/log/mosquitto # chmod 755 /var/log/mosquitto/
localhost:/var/log/mosquitto # schown mosquitto:mosquitto /var/log/mosquitto/mosquitto.log
localhost:/var/log/mosquitto # chmod 644 /var/log/mosquitto/mosquitto.log
localhost:/var/log/mosquitto # chown mosquitto:mosquitto /etc/mosquitto/passwd
localhost:/var/log/mosquitto # chmod 600 /etc/mosquitto/passwd
--再次运行mosquitto服务,还是相同的错误
localhost:/var/log/mosquitto # systemctl daemon-reload
localhost:/var/log/mosquitto # systemctl start mosquitto
localhost:/var/log/mosquitto # systemctl status mosquitto
Sep 20 19:30:08 localhost mosquitto[90481]: 1758367808: Error: Unable to open log file /var/log/mosquitto/mosquitto.log for writing.
Sep 20 19:30:08 localhost mosquitto[90481]: 1758367808: Error: Unable to open pwfile "/etc/mosquitto/passwd".
--修改mosquitto.service配置文件,还是失败
localhost:/var/log/mosquitto # sudo cp /usr/lib/systemd/system/mosquitto.service /etc/systemd/system/
localhost:/var/log/mosquitto # vim /etc/systemd/system/mosquitto.service
修改其中的参数,full 为false
ProtectSystem=false
保存后重启
localhost:/var/log/mosquitto # systemctl daemon-reload
localhost:/var/log/mosquitto # systemctl start mosquitto
localhost:/var/log/mosquitto # systemctl status mosquitto
Sep 20 19:43:21 localhost mosquitto[95354]: 1758368601: Error: Unable to open log file /var/log/mosquitto/mosquitto.log for writing.
Sep 20 19:43:21 localhost mosquitto[95354]: 1758368601: Error: Unable to open pwfile "/etc/mosquitto/passwd".
--没有法子了,必须卸载mosquitto,使用docker安装了。