我正在使用嵌入式 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