since I updated Mosquitto v2.0.3 on Ubuntu 16.04 the users can’t connect to the broker.
When I tried to run with /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
it threw the following message.
2020-12-22|12:37:02: Error: Unable to write pid file.
I saw some people had the same problem, so I added pid_file /var/run/mosquitto/mosquitto.pid
in mosquitto config but the problem did no go away.
I have this in /lib/systemd/system/mosquitto.service
:
[Unit] Description=Mosquitto MQTT Broker Documentation=man:mosquitto.conf(5) man:mosquitto(8) After=network.target Wants=network.target [Service] Type=notify NotifyAccess=main ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf ExecReload=/bin/kill -HUP $MAINPID Restart=on-failure ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto ExecStartPre=/bin/chown mosquitto: /var/log/mosquitto ExecStartPre=/bin/mkdir -m 740 -p /var/run/mosquitto ExecStartPre=/bin/chown mosquitto: /var/run/mosquitto [Install] WantedBy=multi-user.target
The mosquitto.conf file is configured as:
# Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf.example pid_file /var/run/mosquitto/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d listener 1883 log_type error log_type notice log_type information log_type debug log_type all log_dest topic log_type warning allow_anonymous false connection_messages true max_keepalive 10 log_timestamp true log_timestamp_format %Y-%m-%d|%H:%M:%S password_file /etc/mosquitto/pwfile #################################################### # MOSQUITTO LISTENER WITH SLL #################################################### listener 8883 protocol mqtt allow_anonymous false #PARA BROKER EN PC cafile /etc/mosquitto/certs/ca.crt keyfile /etc/mosquitto/certs/server.key certfile /etc/mosquitto/certs/server.crt #PARA BROKER EN RASPBERRY PI 3 #cafile /etc/mosquitto/certs/ca_pi.crt #keyfile /etc/mosquitto/certs/server_pi.key #certfile /etc/mosquitto/certs/server_pi.crt tls_version tlsv1.2
When I ran systemctl status mosquitto from the terminal, it showed me the following message…
● mosquitto.service - Mosquitto MQTT Broker Loaded: loaded (/etc/systemd/system/mosquitto.service; enabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) since mar 2020-12-22 13:06:13 -04; 5s ago Docs: man:mosquitto(8) man:mosquitto.conf(5) Process: 22889 ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf (code=exited, status=1/FAILURE) Main PID: 22889 (code=exited, status=1/FAILURE) dic 22 13:06:13 carmenmoncada systemd[1]:
I don’t know what is happening, could anybody help me with this? Thanks in advance Regards.
Advertisement
Answer
Guys I already found how to solve the issue.
I’ve managed to get it working too.
I’ve manually created a directory /var/run/mosquitto
with ownership to user mosquitto and then the folder and file were created automatically.
sudo mkdir -m 777 mosquitto
In mosquitto.conf I set
pid_file /var/run/mosquitto/mosquitto.pid