Estou tentando configurar o avahi-daemon no meu raspberry pi para transmitir o serviço que acabei de programar, que precisa ser descoberto automaticamente. É meio que funciona, mas não completamente, e não consigo descobrir 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, preciso adicioná-lo a uma configuração, então fiz exatamente isso. 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 eu vi), mas não funciona. Também não funciona se eu correr
sudo systemctl status avahi-daemon
Não dá um erro. Ele simplesmente não publica meu serviço (apesar do log dizendo que ele leu meu arquivo de configuração).
No entanto, e é aqui que fica estranho: se eu copiar o ssh.service padrão da documentação da avahi e executar novamente o comando systemctl acima, ele reconhecerá uma "alteração" nos arquivos de serviço, recarregará e, em seguida, ambos ssh e myservice serão publicado corretamente. Além disso, se eu remover o ssh.service e executar o systemctl novamente, ele reconhecerá que o ssh.service se foi e removerá esse serviço, mas deixará o myservice completamente funcional. No entanto, se eu reiniciar o dispositivo, ele deixará 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.