초마다 InetAddress.getByName ( "example.com") 호출을 반복하는 작은 Java 프로그램이 있습니다. 'strace -f'를 사용하여 CentOS 6.4 상자에서 실행할 때 /etc/resolv.conf가 열리고 한 번 읽은 것을 볼 수 있습니다.
$ grep /etc/resolv.conf strace.out
[pid 24810] open("/etc/resolv.conf", O_RDONLY) = 6
데비안 7에서 실행하면 /etc/resolv.conf가 반복적으로 열리거나 stat ()가 나타납니다.
$ grep /etc/resolv.conf strace.out
[pid 41821] open("/etc/resolv.conf", O_RDONLY) = 10
[pid 41821] stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
[pid 41821] open("/etc/resolv.conf", O_RDONLY) = 10
[pid 41821] stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
[pid 41821] stat("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
두 시스템 모두 /etc/nsswitch.conf가
호스트 : 파일 DNS
어느 시스템에서도 이름 캐싱 데몬이 실행되고 있지 않습니다.
두 시스템에서 동일한 버전의 Oracle HotSot Java JVM을 사용하여 Java 차이점을 배제했습니다.
CentOS 6.4 상자에는 glibc 2.12가 설치되어 있습니다. 데비안 7 박스에는 glibc 2.13이 설치되어 있습니다.
/etc/resolv.conf 열기 및 읽기와 관련하여 두 운영 체제 간의 다른 동작을 설명하는 것은 무엇입니까?