AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1117330
Accepted
Hack Saw
Hack Saw
Asked: 2019-02-12 02:13:42 +0800 CST2019-02-12 02:13:42 +0800 CST 2019-02-12 02:13:42 +0800 CST

Opendkim 无法启动:无法打开 PID 文件?

  • 772

这是我从 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
systemd 18.04 dkim
  • 6 6 个回答
  • 19081 Views

6 个回答

  • Voted
  1. gitaarik
    2019-04-10T02:10:20+08:002019-04-10T02:10:20+08:00

    PidFile我通过在/etc/opendkim.conf文件中指定来修复它:

    PidFile                 /var/run/opendkim/opendkim.pid
    

    我认为在这里解决它比修改systemd脚本更好。此外,如果选项设置为, systemd 会推荐该PIDFileTypeforking选项,它似乎在此服务中。

    此PidFile设置存在于默认/etc/opendkim.conf文件中。但是,我在遵循配置 OpenDKIM 的教程时替换了该文件。所以这就是我出错的地方。

    • 12
  2. Best Answer
    Hack Saw
    2019-02-12T13:42:19+08:002019-02-12T13:42:19+08:00

    由于这个守护进程单独运行,systemd 不需要任何特殊的东西来管理它。重要的是,有一个“PIDFile”指令表明它是一个更复杂的服务,并且会将 PID 放入它自己的 PIDFile 中。

    解决方案是删除 PIDFile 行。现在 systemd 处理得很好。

    • 6
  3. CozC
    2019-10-28T01:54:15+08:002019-10-28T01:54:15+08:00

    在我的情况下,这是因为这/var/run是一个符号链接到/run. 从in更改PIDFile路径后,问题就消失了。/var/run/opendkim/opendkim.pid/run/opendkim/opendkim.pidopendkim.service

    • 1
  4. Bluelily
    2019-11-24T15:04:29+08:002019-11-24T15:04:29+08:00

    在这里编辑这个文件对我有用。

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

    通过更改PidFile /var/run/opendkim/opendkim.pid为

    PidFile   /run/opendkim/opendkim.pid
    

    我的平台是centos 7

    • 0
  5. Feriman
    2020-05-31T04:21:01+08:002020-05-31T04:21:01+08:00

    我通过像这样编辑 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 服务。

    • 0
  6. Timophey Popov
    2019-04-16T04:28:28+08:002019-04-16T04:28:28+08:00

    我只是通过opendkim在其中创建文件夹/var/run/并将其更改为 opendkim:opendkim 来解决此问题。之后,服务正确启动并创建了它的 pid 文件。

    • -1

相关问题

  • 命令列出启动时启动的服务?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve