Opendkim не запускается: не удается открыть файл PID?

Это жалоба, которую я получаю от systemd:

"opendkim.service: Can't open PID file /var/run/opendkim/opendkim.pid"

Как видно здесь:

systemctl status opendkim.service

выдает это:

● opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter
   Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)
   Active: deactivating (stop-sigterm) (Result: timeout)
     Docs: man:opendkim(8)
           man:opendkim.conf(5)
           man:opendkim-genkey(8)
           man:opendkim-genzone(8)
           man:opendkim-testadsp(8)
           man:opendkim-testkey
           http://www.opendkim.org/docs.html
  Process: 8217 ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf (code=exited, status=0/SUCCESS)
    Tasks: 6 (limit: 2361)
   CGroup: /system.slice/opendkim.service
           └─8226 /usr/sbin/opendkim -x /etc/opendkim.conf

Feb 11 04:56:48 hacksaw.org systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) Milter...
Feb 11 04:56:48 hacksaw.org systemd[1]: opendkim.service: Can't open PID file /var/run/opendkim/opendkim.pid (yet?) after start: No such file or directory
Feb 11 04:56:48 hacksaw.org opendkim[8226]: OpenDKIM Filter v2.11.0 starting (args: -x /etc/opendkim.conf)
Feb 11 04:58:18 hacksaw.org systemd[1]: opendkim.service: Start operation timed out. Terminating.

Если я запускаю демон вручную, он уходит. Это похоже на systemd.

Другие данные:

#ls -ld /var/run/opendkim/
drwxr-xr-x 2 opendkim opendkim 40 Feb 11 04:25 /var/run/opendkim/

Единственная строка в opendkim.conf:

UserID      opendkim:opendkim

Файл службы opendkim по умолчанию из /lib/systemd/service:

[Unit]
Description=OpenDKIM DomainKeys Identified Mail (DKIM) Milter
Documentation=man:opendkim(8) man:opendkim.conf(5) man:opendkim-genkey(8) man:opendkim-genzone(8) man:opendkim-testadsp(8) man:opendkim-testkey http://www.opendkim.org/docs.html
After=network.target nss-lookup.target

[Service]
Type=forking
PIDFile=/var/run/opendkim/opendkim.pid
UMask=0007
ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf
Restart=on-failure
ExecReload=/bin/kill -USR1 $MAINPID

[Install]
WantedBy=multi-user.target

3 ответа

Решение

Поскольку этот демон работает один, systemd не нужно ничего особенного для управления им. Важно отметить, что наличие директивы "PIDFile" говорит о том, что это более сложный сервис, и он самостоятельно помещает PID в PIDFile.

Решение состоит в том, чтобы удалить строку PIDFile. Теперь systemd справляется с этим просто отлично.

Я исправил это, указав PidFile в /etc/opendkim.conf файл:

PidFile                 /var/run/opendkim/opendkim.pid

Я думаю, что лучше решить это здесь, чем модифицировать скрипт systemd. Кроме того, systemd рекомендует PIDFile вариант, если Type опция установлена ​​в forking, который, кажется, в этом сервисе.

это PidFile настройка присутствовала по умолчанию /etc/opendkim.conf файл. Тем не менее, я заменил его, пока следовал руководству по настройке OpenDKIM. Так вот, где это пошло не так для меня.

В моем случае это было связано с тем, что /var/run была символической ссылкой на /run, После изменения PIDFile путь от /var/run/opendkim/opendkim.pid в /run/opendkim/opendkim.pid в opendkim.serviceпроблема ушла.

Редактирование этого файла делает это за меня.

/usr/lib/systemd/system/opendkim.service

изменив PidFile /var/run/opendkim/opendkim.pid на

PidFile /run/opendkim/opendkim.pid

моя платформа - centos 7

Я исправил эту проблему, отредактировав файл systemctl следующим образом:

nano /etc/systemd/system/multi-user.target.wants/opendkim.service

[Service]
PIDFile=/var/run/opendkim/opendkim.pid
ExecStartPost=/bin/sh -c 'chown opendkim:opendkim /var/run/opendkim/opendkim.pid'

Он установит правильное разрешение для файла opendkim.pid перед запуском службы. Это причина, по которой opendkim сказал: "Нет такого файла или каталога". Файл недоступен для службы opendkim.

Я решаю эту проблему, просто создав opendkim папка в /var/run/ и покушал его на опендким: опендким. После этого сервис запустился корректно и создал свой pid-файл.

Другие вопросы по тегам