Linux

/etc/resolve.conf 的更新需要重新啟動應用程序

  • December 13, 2018

我正在使用嵌入式 linux 目標 (ARM) 並遇到以下問題:當 /etc/resolv.conf 更新時,當一個程序正在執行時(例如使用 gethostbyname() 的 C 程序),正在執行的程序不關心新的名稱伺服器條目,直到它重新啟動。

已使用 systemd-resolve -i eth0 –set-dns=“ipaddr” 創建 DNS 條目

如果我在我的桌面 linux 上嘗試相同的操作,對 /etc/resolv.conf 的任何更改都會立即被正在執行的程序使用,而無需重新啟動。

當 /etc/resolv.conf 被修改時,我怎樣才能看到後台發生了什麼(或沒有發生)?嵌入式目標上可能缺少什麼服務?為什麼重新啟動應用程序後它可以工作?

嘗試添加resolve到您/etc/nsswitch.conf之前的dns條目中,因此 hosts 行將如下所示:

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

引用自:https://unix.stackexchange.com/questions/487612