/etc/resolve.confを更新するには、アプリケーションを再起動する必要があります。

/etc/resolve.confを更新するには、アプリケーションを再起動する必要があります。

組み込みLinuxターゲット(ARM)を使用しており、次の問題があります。 /etc/resolv.confを更新するときにプロセスが実行されている間(gethostbyname()を使用するCプログラムなど)、実行中のプロセスは気にしません。再起動されるまで新しいネームサーバーエントリ。

systemd-resolve -i eth0 --set-dns="ipaddr" を使用して生成された DNS エントリ

デスクトップLinuxで同じことを試みると、/etc/resolv.confへのすべての変更は再起動せずに実行中のプロセスですぐに使用されます。

/etc/resolv.confを修正するとき、バックグラウンドで何が起こっているのか(または起こらないのか)どうすればわかりますか?埋め込みターゲットにどのサービスが欠落している可能性がありますか?アプリケーションを再起動した後でも機能するのはなぜですか?

ベストアンサー1

ホスト行が次のように見えるように、前の項目にresolve追加してみてください。/etc/nsswitch.confdns

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

おすすめ記事