Обнаружена та же проблема - RHEL 5.5. Измените (любую) исходную карту, затем запустите make. ypcat показывает измененную информацию, ypmatch - нет. Все, что нужно на самом деле --use-- новая карта терпит неудачу. Как и в прошлом посте, перезапуск ypserv делает все ОК. После нескольких дней тестирования, запуска strace и т. Д. Я обнаружил, что у ypserv есть «кэш дескриптора файла», управляемый записью «file:» в /etc/ypserv.conf --- значение по умолчанию равно 30. Измените это на 0 и все работает по марке.
Не должно этого делать --- На странице man для ypserv.conf ...
"Было одно большое изменение между ypserv 1.1 и ypserv 1.2. Начиная с версии 1.2, дескрипторы файлов кэшируются. Это означает, что вы должны всегда вызывать makedbm с опцией -c, если вы создаете новые карты. Убедитесь, что вы используя новый / var / yp / Makefile из ypserv 1.2 или новее, или добавьте флаг -c в makedbm в Makefile. Если вы этого не сделаете, ypserv продолжит использовать старые карты, а не обновленные. «
make-файл DOES использует "makedbm -c", но ypserv использует старую (кэшированную) карту.
Ответ: Не кэшируйте дескрипторы файлов, например, установите "files: 0" в ypserv.conf