Как я запускаю брокера Mosquitto MQTT на запуске в Ubuntu 16.04

Я пытаюсь выполнить Брокера Mosquitto MQTT на Ubuntu 16.04. У меня есть инструкции от 14,04, но с тех пор 16.04 больше запуск использования, я не могу выяснить, как преобразовать в systemd.

Вот команды для 14,04:

description "Mosquitto MQTT broker"
start on net-device-up
respawn
exec /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Править:

Это - то, до чего я добрался до сих пор. Когда я перезагружаю и работаю systemctl status mosquitto.service Я показываю, что москит загружается, но не активный:

[Unit]
Description=Mosquitto MQTT Broker

[Service]
WorkingDirectory=/usr/sbin/mosquitto
ExecStart=/etc/mosquitto/mosquitto.conf
Restart=always

[Install]
WantedBy=multi-user.target

РЕДАКТИРОВАНИЕ 2:

Работал sudo systemctl enable mosquitto.service. Теперь ошибочный код выхода:

Process: 1720 ExecStart=/etc/mosquitto/mosquitto.conf (code=exited, status=200/CHDIR)
10
задан 22 August 2016 в 10:02

3 ответа

Установка sudo apt install mosquitto на 16.04 добавляет /etc/init.d/mosquitto сценарий. systemd использует тот сценарий для генерации /run/systemd/generator.late/mosquitto.service, и это - то, что он говорит:

# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/mosquitto
Description=LSB: mosquitto MQTT v3.1 message broker
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
Before=shutdown.target
After=remote-fs.target
After=systemd-journald-dev-log.socket
Conflicts=shutdown.target

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/init.d/mosquitto start
ExecStop=/etc/init.d/mosquitto stop
ExecReload=/etc/init.d/mosquitto reload

Взгляд в /etc/init.d/mosquitto говорит нам, который

/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf уже выполняется значением по умолчанию

, Поэтому просто помещает Вашу конфигурацию в /etc/mosquitto/conf.d (ссылаемый mosquitto.conf), и обладают .


Являющийся регулярным systemd сервисом, Вы можете:

  • systemctl status mosquitto для наблюдения его текущего статуса
  • sudo systemctl (start|stop) mosquitto для изменения состояния для текущей сессии
  • sudo systemctl (enable|disable) mosquitto для изменения поведения запуска (не влияя на текущее состояние)
9
ответ дан 23 November 2019 в 04:34

Ваши строки файла ExecStart= и WorkingDirectory= единицы являются абсолютно неправильными. Вы пытаетесь запустить файл конфигурации, с помощью исполняемого файла (!) в качестве его рабочего каталога?

, Если бы я понимаю правильно, надлежащий файл единицы был бы:

[Unit]
Description=Mosquitto MQTT Broker
After=network.target

[Service]
ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always

[Install]
WantedBy=multi-user.target

кроме того, не объединяйте запуск и включение единицы. Прочитайте мои подобные ответы об этом:

0
ответ дан 23 November 2019 в 04:34

Убедитесь, что у Вас есть выполнение москита:

ps -aux | grep mosquitto

И у Вас есть это в default.conf:

listener 1883
0
ответ дан 23 November 2019 в 04:34

Другие вопросы по тегам:

Похожие вопросы: