Registrar um host local via mDNS:
myapp.local → 127.0.0.1
E manter o comando abaixo ativo automaticamente ao iniciar a máquina (ambiente corp, sem sudo):
dns-sd -A myapp.local 127.0.0.1
O dns-sd -A mantém o registro apenas enquanto o processo estiver ativo.
Criar um LaunchAgent em user-space.
-
Criar diretório (caso não exista)
mkdir -p ~/Library/LaunchAgents
-
Criar o arquivo
nano ~/Library/LaunchAgents/com.local.myapp.mdns.plist
-
Conteúdo do arquivo:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.local.myapp.mdns</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/dns-sd</string>
<string>-A</string>
<string>myapp.local</string>
<string>127.0.0.1</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/myapp-mdns.out</string>
<key>StandardErrorPath</key>
<string>/tmp/myapp-mdns.err</string>
</dict>
</plist>
-
Carregar o serviço
launchctl load ~/Library/LaunchAgents/com.local.myapp.mdns.plist
-
Para testar imediatamente:
launchctl start com.local.myapp.mdns
Após login do usuário:
- O processo
dns-sd -A myapp.local 127.0.0.1inicia automaticamente. - O registro mDNS permanece ativo.
ping myapp.localresolve para127.0.0.1.
dns-sd -Aexige processo persistente.KeepAlivegarante reinício automático se o processo encerrar.- O serviço roda apenas para o usuário atual (não é global).
- Funciona integralmente sem privilégios administrativos.