CentOS 7, после установки opendkim и старта сервиса появляется такая строчка в логе. Есть абсолютно аналогичная проблема с dovecot, далее буду писать только про opendkim.
Лог:
Sep 03 15:15:57 jupi.vbezhenar.com systemd[1]: Starting DomainKeys Identified Mail (DKIM) Milter...
Sep 03 15:15:57 jupi.vbezhenar.com systemd[1]: Can't open PID file /var/run/opendkim/opendkim.pid (yet?) after start: No such file or directory
Sep 03 15:15:57 jupi.vbezhenar.com opendkim[16313]: OpenDKIM Filter v2.11.0 starting (args: -x /etc/opendkim.conf -P /var/run/opendkim/opendkim.pid)
Sep 03 15:15:57 jupi.vbezhenar.com systemd[1]: Started DomainKeys Identified Mail (DKIM) Milter.
Файл сервиса:
[Unit]
Description=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 syslog.target
[Service]
Type=forking
PIDFile=/var/run/opendkim/opendkim.pid
EnvironmentFile=-/etc/sysconfig/opendkim
ExecStart=/usr/sbin/opendkim $OPTIONS
ExecReload=/bin/kill -USR1 $MAINPID
User=opendkim
Group=opendkim
[Install]
WantedBy=multi-user.target
На самом деле opendkim создаёт там pid, всё нормально. Да и сервис в принципе стартует, но мне всё равно не нравится лишняя ругань в логе, хочется её убрать. Я так понимаю, суть проблемы в том, что systemd запускает демона, тот тут же форкается и только потом создаёт PID-файл. А systemd уже в этот момент его пытается проверять и не находит.
На данный момент проблему решил созданием файла /etc/systemd/system/opendkim.service.d/postexec-sleep.conf
следующего содержания:
[Service]
ExecStartPost=/usr/bin/sleep 1
Но это как-то тупо. Есть ли способ получше?