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
    • 最新
    • 标签
主页 / server / 问题 / 817552
Accepted
Christian Grabowski
Christian Grabowski
Asked: 2016-11-29 11:51:17 +0800 CST2016-11-29 11:51:17 +0800 CST 2016-11-29 11:51:17 +0800 CST

Systemd 插件无法创建 PID 文件

  • 772

我在 path 有一个 systemd-machined 插件/etc/systemd/system/systemd-machined.service.d/10-machined-pid-file.conf。当我跑步时,systemctl status systemd-machined我确实看到了线条

Drop-In: /etc/systemd/system/systemd-machined.service.d
       └─10-machined-pid-file.conf

但是,我在 /var/run/ 中没有看到 PID 文件。根据我的加入:

[Serivce]
PIDFile=/var/run/machined.pid

我相信创建该 PID 文件应该没有任何问题。有什么我想念的吗?

files pid systemd
  • 3 3 个回答
  • 27278 Views

3 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2016-11-29T12:18:43+08:002016-11-29T12:18:43+08:00

    该PIDFile=设置不会创建PID 文件。这仍然取决于服务本身,就像过去 40 年一样。相反,此选项告诉 systemd 在哪里可以找到现有的 PID 文件(如果有)。在大多数情况下,它根本不需要,因为 systemd 会将服务保存在自己的 cgroup 中,并且不需要 PID 文件来跟踪它们。但是,如果服务自身清理失败,systemd 会在服务退出时删除一个 PID 文件。

    从文档中:

    采用指向此守护进程的 PID 文件的绝对文件名。Type=对于设置为 的服务,建议使用此选项forking。systemd 会在服务启动后读取守护进程主进程的 PID。systemd 不会写入此处配置的文件,但如果该文件仍然存在,它会在服务关闭后删除该文件。

    • 25
  2. Mike Gleason
    2018-08-11T09:31:11+08:002018-08-11T09:31:11+08:00

    PIDFile=遗憾的是,即使您在服务的单元文件中指定了一行,systemd 也不会为非分叉服务创建 PID文件。但是你也许可以用一条ExecStartPost=线作弊,例如:

    ExecStartPost=/bin/sh -c 'umask 022; pgrep YOURSERVICE > /var/run/YOURSERVICE.pid'
    
    • 14
  3. ceph3us
    2022-06-13T18:41:46+08:002022-06-13T18:41:46+08:00

    如果您想使用主进程的 PID,我认为“grep'ing” pid 文件是错误的方法

    systemctl show -p MainPID --value SERVICE

    (其中服务是单位名称)

    示例用法:

    ExecStartPost=/usr/bin/bash -c '/usr/bin/systemctl show -p MainPID --value unbound > /run/unbound.pid'

    *ps ensure cmd paths (distro vary)
    
     which systemctl 
    
     which bash 
    
    
    • 0

相关问题

  • 在本地复制大型目录树?cp还是rsync?

  • > 4GB文件的rsync

  • 操作系统文件

  • 比较(diff)完整目录结构的最佳方法?

  • 将 .mbx 文件转换为 .pst 文件

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve