Я пытаюсь настроить avahi-daemon на моем Raspberry Pi для трансляции только что запрограммированного сервиса, который должен обнаруживаться автоматически. Это работает, но не совсем, и я не могу понять, почему нет.
Если я использую:
avahi-publish -s myservice _mqtt._tcp 1883
он работает просто отлично, но это не настраивает его на автоматический запуск. Для этого мне нужно добавить его в конфиг, поэтому я так и сделал. Я добавил myservice.service в /etc /avahi /services со следующим содержимым:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">myservice</name>
<service>
<type>_mqtt._tcp</type>
<port>1883</port>
</service>
</service-group>
Это должно работать при загрузке (согласно всей документации, которую я видел), но не работает. Это также не работает, если я бегу
sudo systemctl status avahi-daemon
Это не дает ошибку. Он просто не публикует мой сервис (несмотря на то, что в журнале говорится, что он прочитал мой файл конфигурации).
Тем не менее, и вот где это становится странным: если я скопирую ssh.service по умолчанию из документации avahi, а затем снова ЗАПУСТУЮ команду выше systemctl, она распознает "изменение" в служебных файлах, перезагрузится, а затем ОБА ssh и myservice опубликовано правильно. Более того, если я затем удаляю ssh.service и снова запускаю systemctl, он распознает, что ssh.service ушел, и удаляет этот сервис, но оставляет myservice полностью работоспособным. Однако, если я перезагружаю устройство, оно перестает работать снова.
Более того, если я покидаю ssh.service и перезагружаюсь, он тоже не работает ...
Я не понимаю, что не так.