Я пытаюсь настроить некоторые виртуальные хосты, и я совершенно не понимаю, когда загружается этот файл.
В какой момент /private/etc/hosts
загружается? При входе? При каждом вызове DNS? Когда Mac OS перезагружается?
Страница руководства hosts (5) дает некоторое представление о том, как /etc/hosts
это использовать.
Файл используется mDNSResponder
, и, учитывая ваш вопрос, я подозреваю, что вы хотите, чтобы изменения отражались /etc/hosts
в ваших поисках DNS.
После каждого редактирования /etc/hosts
сброса mDNSResponder
кэша с помощью этой технической заметки Apple, OS X: Как сбросить кэш DNS :
sudo dscacheutil -flushcache
В примечании объясняется, когда вам может понадобиться это сделать:
Когда вы можете захотеть это сделать
OS X хранит локальный кэш разрешенных DNS-запросов в течение времени, определенного DNS-сервером, но иногда может потребоваться немедленно сбросить кэш и повторно запросить DNS-сервер. Например, это можно сделать после изменения записи на сервере или добавления новой записи.
Обычно изменения в /etc/hosts
обновляются автоматически в течение нескольких секунд, и мне не нужно вручную сбрасывать кеш DNS.
Если вы попытаетесь запустить sudo opensnoop|grep /etc/hosts
и отредактировать файл /etc/hosts
, /etc/hosts
он будет прочитан mDNSResponder
практически сразу после его сохранения.
Грэм Милн
hosts
за изменениями файла, используя механизм kqueue.