===== Ошибка автозапуска службы nfs-server.service - exportfs: Failed to resolve в CentOS Linux 7.2 ===== При перезагрузке файлового **NFS**-сервера на базе **CentOS Linux 7.2** служба **nfs-server** не стартует, хотя настроена на автоматический запуск. Соответсвенно NFS-клиентам недоступны NFS-шары с этого файлового срвера. При этом ручной запуск службы **nfs-server** происходит успешно. После перезагрузки сервера, если заглянуть в текущий статус службы то увидим то, что она не запущена и ошибку типа "//exportfs: Failed to resolve..."// # service nfs-server status Redirecting to /bin/systemctl status nfs-server.service ● nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service;enabled;vendor preset:disabled) Active: failed (Result: exit-code) since Fri 2016-09-09 10:03:12 MSK; 28min ago Process: 1955 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=1/FAILURE) Sep 09 10:02:35 systemd[1]: Starting NFS server and services... Sep 09 10:03:12 exportfs[1955]: exportfs: Failed to resolve OVIRT1.dom.com Sep 09 10:03:12 systemd[1]: nfs-server.service:control process exited, code=exited status=1 Sep 09 10:03:12 systemd[1]: Failed to start NFS server and services. Sep 09 10:03:12 systemd[1]: Unit nfs-server.service entered failed state. Sep 09 10:03:12 systemd[1]: nfs-server.service failed. Проблема может быть связана с тем, что в процессе загрузки служба **nfs-server.service** пытается запуститься до того, как закончена полная инициализация сети, и соответственно из-за ошибки разрешения имени из файла **/etc/exports** служба не стартует. Для решения этой проблемы можно использовать разные методы. **Метод №1**\\ Включить службу **NetworkManager-wait-online**, в случае если в вашей системе используется **NetworkManager** : # systemctl enable NetworkManager-wait-online.service **Метод №2**\\ Отредактировать конфигурационный файл службы **/usr/lib/systemd/system/nfs-server.service**, добавив в секцию **[Unit]** строки: [Unit] ... After=network-online.target Wants=network-online.target Requires=network-online.target ... После этого выполняем команду: # systemctl daemon-reload Эти методы можно пробовать использовать как раздельно так и вместе. После применения методов несколько раз перезагружаем сервер и убеждаемся в том, что каждый раз служба **nfs-server** запускается автоматически при загрузке системы. Если ничего не помогает, то можно попробовать поставить жёсткий "костыль", а именно добавить в конец файла **/etc/rc.d/rc.local** проверку наличия сети путём отсылки ping, и как только сеть появится - запускать службу. Этот фрагмент добавим в файл **/etc/rc.d/rc.local** (в переменную checkip вставьте IP другого сервера, например шлюза): sleep 10 checkip="10.1.0.1" if [ -z "$(systemctl status nfs-server.service | grep 'Active: active')" ]; then while ! ping -c 1 -W 1 $checkip; do # Waiting for gateway ip - network interface might be down..." sleep 1 done sleep 10 systemctl start nfs-server.service fi И не забудем сделать исполняемым файл # chmod +x /etc/rc.d/rc.local === Дополнительные источники информации === [[https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/|freedesktop.org wiki - Running Services After the Network is up]] ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 09.09.2016 11:10 {{tag>Linux CentOS "CentOS 7.2" NFS nfs-server NetworkManager NetworkManager-wait-online exportfs}} ~~DISCUSSION~~