web-dev-qa-db-fra.com

Opendkim ne démarre pas: impossible d'ouvrir le fichier PID?

Voici la plainte que je reçois de systemd:

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

Comme on le voit ici:

systemctl status opendkim.service

met cela:

● 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.

Si je démarre le démon à la main, ça marche. Cela semble concerner systemd.

Autre informations:

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

La seule ligne sur opendkim.conf:

UserID      opendkim:opendkim

Le fichier de service opendkim par défaut, à partir de/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
Hack Saw

Puisque ce démon fonctionne seul, systemd n'a besoin de rien de spécial pour le gérer. Surtout, avoir une directive "PIDFile" suggère que c'est un service plus compliqué, et mettra un PID dans le PIDFile de son propre chef.

La solution consiste à supprimer la ligne PIDFile. Maintenant, systemd le gère très bien.

2
Hack Saw

Je l'ai corrigé en spécifiant le PidFile dans le /etc/opendkim.conf fichier:

PidFile                 /var/run/opendkim/opendkim.pid

Je pense qu'il vaut mieux le résoudre ici que de modifier le script systemd. En outre, systemd recommande l'option PIDFile si l'option Type est définie sur forking , ce qui semble être dans ce service.

Ce paramètre PidFile était présent dans la valeur par défaut /etc/opendkim.conf fichier. Cependant, j'ai remplacé ce fichier pendant que je suivais un tutoriel pour configurer OpenDKIM. C'est donc là que ça s'est mal passé pour moi.

5
gitaarik

Dans mon cas, c'était dû au fait que /var/run était un lien symbolique vers /run. Après avoir modifié le chemin PIDFile de /var/run/opendkim/opendkim.pid dans /run/opendkim/opendkim.pid dans opendkim.service, le problème a disparu.

1
CozC

La modification de ce fichier ici le fait pour moi.

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

en remplaçant PidFile /var/run/opendkim/opendkim.pid par

PidFile /run/opendkim/opendkim.pid

ma plateforme est centos 7

0
Bluelily

Je résout ce problème en créant simplement le dossier opendkim dans /var/run/ et l'a réprimandé à opendkim: opendkim. Après cela, le service a démarré correctement et a créé son fichier pid.

0
Timophey Popov