В моих постоянных попытках заставить моего Raspberry Pi распоряжаться моими вещами, я создал брокера Mosquitto MQTT. В базовых настройках все прошло достаточно хорошо.
Я мог опубликовать тестовые сообщения с помощью команды publish и получить их с помощью команды Подписаться. Затем я решил повысить уровень журнала и изменил файл mosquitto.conf следующим образом. Версия с практически всем закомментированным разделом журнала работает. Другой нет.
Я сузил его до строки с файлом журнала.
$ diff mosquitto.conf mosquitto.conf.old
408,410c408,410
< #log_dest file /var/log/mosquitto/mosquitto.log
---
> log_dest file /var/log/mosquitto/mosquitto.log
Файл существует и принадлежит mosquitto:mosquitto
пользователю, который запускает службу.
Очень полезное сообщение, которое я получаю, когда пытаюсь с регистрацией, следующее:
mosquitto_pub -h localhost -t thisisme -m 5
Error: Connection refused
К настоящему времени я уверен, что служба умирает тихой смертью.
$ sudo service mosquitto status
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
Loaded: loaded (/etc/init.d/mosquitto)
Active: active (exited) since Fri 2017-01-06 11:16:38 CET; 4min 24s ago
Process: 2222 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
Process: 2230 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)
Jan 06 11:16:38 T-Pi mosquitto[2230]: Starting network daemon:: mosquitto.
Jan 06 11:16:38 T-Pi systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.
Я использую Raspbian GNU / Linux 8 (jessie) со следующими пакетами mosquitto:
libmosquitto1/stable,now 1.3.4-2 armhf [installed,automatic]
mosquitto/stable,now 1.3.4-2 armhf [installed]
mosquitto-clients/stable,now 1.3.4-2 armhf [installed]
python-mosquitto/stable,now 1.3.4-2 all [installed]
Дополнительный комментарий запрашиваемой информации:
ls -ld /var /var/log /var/log/mosquitto /var/log/mosquitto/mosquitto.log
drwxr-xr-x 11 root root 4096 Sep 23 06:02 /var
drwxr-xr-x 8 root root 4096 Jan 6 21:07 /var/log
drwxr-xr-x 2 mosquitto mosquitto 4096 Jan 5 14:36 /var/log/mosquitto
-rw-r--r-- 1 mosquitto mosquitto 14233 Jan 6 21:07 /var/log/mosquitto/mosquitto.log
Единственный файл журнала в / var / log, который модифицируется - это файл auth.log из моего sudo.
Что я сломал?
источник
/var/log/mosquitto/mosquitto.log
вообще?Ответы:
Один из способов отладки - запускать mosquitto вручную с теми же параметрами, которые использует ваша система инициализации, а затем посмотреть на вывод. Например:
Добавление
-v
гарантирует, что у вас есть подробное ведение журнала, независимо от настроек файла конфигурации.источник
В Arch Linux (4.4.37-1-ARCH) с
mosquitto 1.4.10-2
существующим лог-файлом / путем с разрешениями как таковыми я не могу воспроизвести эту ошибку.Однако если права доступа к файлу журнала различаются или он не существует, а разрешение каталогов не позволяет mosquitto писать в него, запуск демона посредника завершается неудачно. К чему приводит
Error: Connection refused
публикация или подписка на темы. По крайней мере, служба не умирает тихой смертью, но хорошо объявляет об этом в системном журнале.Короче говоря, с каталогом,
/var/log/mosquitto
принадлежащим и доступным для записи пользователю mosquitto,log_dest file [...]
строка в конфигурации mosquitto работает просто отлично.источник
Бревно каталог / файл должен быть в собственности от
mosquitto
пользователя или пользователя , который у вас есть настройки в файле конф и группы. Я попытался с двумя conf файлами, один без,log_dest file /var/log/mosquitto/mosquitto.log
а другой с адресом журнала в файл.На моем сервере Mosquitto работает с
mosquitto
пользователем.При
log_dest file /var/log/mosquitto/mosquitto.log
принадлежащемroot
пользователю не работает ошибка состояния сервиса. Возможно, это относится и к вам. Проверьтеservice status
после добавления log_dest.Я попытался изменить владельца
/var/log/mosquitto
папки наmosquitto
.Затем запустили сервис. Сейчас работает нормально.
источник