База знаний DNSmanager

Не запускается служба pdns после перезагрузки сервера

Описание

После перезагрузки сервера служба PowerDNS (pdns) не запускается с ошибкой циклического перезапуска. В логах присутствуют сообщения об ошибке:

Unable to bind to control socket at '/var/run/pdns-domain_com/pdns-domain.com.controlsocket', reason: Permission denied

Ошибка возникает из-за расхождения путей к директории control socket. Путь по-разному задан в конфигурации pdns и в параметре RuntimeDirectory службы systemd. В результате процесс pdns не находит нужную директорию и аварийно завершается, потому что systemd создаёт и удаляет собственную директорию.

Решение

Чтобы решить проблему, синхронизируйте путь к директории socket в конфигурации pdns с путём, который создаёт systemd:

  1. Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Проверьте конфигурационный файл pdns:

    1. Откройте конфигурационный файл pdns вашего домена. Обычно он находится по пути /etc/powerdns/pdns-domain.com.conf:

      cat /etc/powerdns/pdns-domain.com.conf
    2. Проверьте значение параметра socket-dir:
      Пример вывода
      socket-dir=/var/run/pdns-domain_com
  3. Сравните полученное значение с путём, который создаёт systemd:
    1. Откройте файл службы systemd. Обычно файл расположен по пути /etc/systemd/system/pdns@domain.com.service:
      cat /etc/systemd/system/pdns@domain.com.service
    2. Проверьте значение параметра RuntimeDirectory:
      Пример параметра
      RuntimeDirectory=pdns-%i
      Пояснения

      В предоставленных примерах значения отличаются. В корректном пути в роли разделителя выступает точка, а не подчёркивание.

  4. Исправьте несоответствие. Если значения не совпадают, отредактируйте конфигурационный файл /etc/powerdns/pdns-domain.com.conf. Укажите корректное значение параметра socket-dir:
    socket-dir=/var/run/pdns-domain.com
  5. Перезапустите службу:
    systemctl restart pdns@domain.com.service
  6. Проверьте работу службы:
    systemctl status pdns@domain.com.service
    Пример вывода
    Active: active (running) since Wed 2025-09-24 10:50:58; 5min ago

    Ожидаемый результат: служба активна.

Может быть полезно
Дата последнего обновления статьи: 04.12.2025. Статья подготовлена техническими писателями ISPsystem