임베디드 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.conf
dns
hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname