Назад | Перейти на главную страницу

Не удается запустить nscd. В результате кеш DNS устарел

Я пытаюсь устранить проблему на сервере MediaTemple (под управлением CentOS5), где кеш DNS устарел - я думаю, из-за того, что произошел сбой nscd. Я пробовал перезапустить nscd:

# service nscd restart
Stopping nscd:                                             [FAILED]
Starting nscd:                                             [  OK  ]

Это имеет смысл, поскольку я считаю, что nscd разбился, поэтому он еще не должен работать, но когда я просматриваю статус nscd:

# service nscd status
nscd dead but subsys locked

И ps -A не возвращает процессов, связанных с nscd (я предполагаю, потому что он мертв). Я редактировал /etc/nscd.conf и раскомментировал строку, определяющую расположение файла журнала. Он создал файл, но никогда в него ничего не записывает.

Я попытался взглянуть на сценарий инициализации, но обнаружил, что это не помогает, поскольку сценарий считает, что все работает нормально - служба возвращает, что он запустился правильно.

Как мне "разблокировать" подсистему, на которую жалуется nscd?

Изучите вариант пакета bind-chroot (и его зависимости). Просто установите yum и измените ваш /etc/resolv.conf так, чтобы он указывал на 127.0.0.1. Это немного надежнее, чем nscd out of gates.

К сожалению, это ошибки в сценариях инициализации nscd, и статус не имеет значения. Сценарий инициализации ожидает, что файл pid будет /var/run/nscd.pid (что было бы, если бы сценарий инициализации записывал файл pid). Увы, nscd сам записывает свой файл pid в /var/run/nscd/nscd.pid.

Чтобы упростить, попробуйте устранить неполадки с помощью nscd выкл.

Если вы хотите знать, что ncsd не может начать исследовать вывод strace -f /usr/sbin/nscd.

Nscd записывает файлы кэша на диск. Я видел проблемы с ним раньше, когда он вылетал при запуске, если есть проблема с чтением этого кеша. Попробуйте удалить все файлы в каталоге кеша (должен быть / var / cache / nscd) и снова перезапустить nscd.

У меня была немного другая проблема - я думаю, она возникла из-за нехватки места на диске в системном разделе. Я убил сервис, используя $ sudo kill <pid>, затем удалите nscd.pid, затем запустите службу. расположение файла может отличаться в зависимости от ОС и типа. Для CentOS (и, предположительно, других вариантов Redhat), /var/run/nscd/nscd.pid

Запускать:

$ sudo service nscd start