4

I'm trying to configure some virtual hosts and I'm quite confused as to when this file is loaded.

At what point is /private/etc/hosts loaded? When logging in? At every DNS call? When Mac OS restarts?

2 Answers 2

5

The hosts(5) manual page provides some insight into how /etc/hosts is used.

The file is used by mDNSResponder and, given your question, I suspect you want to see edits to /etc/hosts reflected in your DNS look-ups.

After each edit of /etc/hosts reset the mDNSResponder cache using this Apple technical note, OS X: How to reset the DNS cache:

sudo dscacheutil -flushcache 

The note explains when you might need to do this:

When you might want to do this

OS X keeps a local cache of resolved DNS queries for a time defined by the DNS server, but sometimes it may be necessary to reset the cache immediately and re-query a DNS server. For example, you might do this after an entry on the server is changed or a new entry is added.

2

Usually changes to /etc/hosts are updated automatically within a few seconds, and I haven't needed to reset the DNS cache manually.

If you try to run sudo opensnoop|grep /etc/hosts and edit /etc/hosts, /etc/hosts is read by mDNSResponder almost immediately after you save it.

1
  • 2
    I suspect in later versions of OS X, Apple started actively watching the hosts file for changes using the kqueue mechanism. Commented Feb 17, 2014 at 7:53

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.