更新 /etc/resolve.conf 需要重新启动应用程序

更新 /etc/resolve.conf 需要重新启动应用程序

我正在使用嵌入式 linux 目标 (ARM) 并遇到以下问题:更新 /etc/resolv.conf 时,当进程正在运行时(例如使用 gethostbyname() 的 C 程序),正在运行的进程不关心新的名称服务器条目,直到重新启动。

DNS 条目已使用 systemd-resolve -i eth0 --set-dns="ipaddr" 创建

如果我在桌面 Linux 上尝试相同的操作,则正在运行的进程会立即使用对 /etc/resolv.conf 的任何更改,而无需重新启动。

修改 /etc/resolv.conf 时,如何查看后台发生(或未发生)的情况?嵌入式目标上可能缺少哪些服务?为什么重启应用程序后就可以工作了?

答案1

尝试添加resolve到您的/etc/nsswitch.conf之前dns条目中,因此主机行将如下所示:

hosts:          files mymachines resolve [!UNAVAIL=return] dns myhostname

相关内容