Estou tentando configurar o avahi-daemon no meu pi de framboesa para transmitir o serviço que acabei de programar, que precisa ser descoberto automaticamente. Isso funciona, mas não é bem assim, e não consigo entender por que não.
Se eu usar:
avahi-publish -s myservice _mqtt._tcp 1883
funciona muito bem, mas isso não o configura para iniciar automaticamente. Para isso eu preciso adicioná-lo a uma configuração, então eu fiz exatamente isso. Eu adicionei myservice.service em / etc / avahi / services com o seguinte conteúdo:
<?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>
Isso deve funcionar na inicialização (de acordo com toda a documentação que vi), mas não funciona. Também não funciona se eu correr
sudo systemctl status avahi-daemon
Não dá erro. Apenas não publica meu serviço (apesar do log dizer que leu meu arquivo de configuração).
No entanto, e é aí que fica estranho: se eu copiar o ssh.service padrão da documentação avahi e, em seguida, RERUN o comando systemctl acima, ele reconhece uma "alteração" nos arquivos de serviço, recarrega e depois BOTH ssh e myservice são publicados corretamente. Além disso, se eu remover o ssh.service e executar o systemctl novamente, ele reconhecerá que o ssh.service desapareceu e removerá esse serviço, mas deixará o myservice completamente funcional. No entanto, se eu reiniciar o dispositivo, ele parará de funcionar novamente.
Além disso, se eu deixar o ssh.service e reiniciar ele também não funcionará ...
Eu não entendo o que está errado.