把 pid 写在文件里有什么好处?

发布于 2022-09-06 00:57:39 字数 207 浏览 28 评论 0

经常看到一些服务的进程 id 号是写在一个 pid 文件里:

  1. 把这个 pid 写在文件里有什么好处?
  2. 针对上面的第 1 点,那么其他服务没有把 pid 写在文件里又是怎么做的?(这个问题貌似有点愚蠢,实在操作系统知识缺乏)
  3. pid 文件一般只放一个 pid,当一个服务同时启动多个进程时, 是否需要多个 pid 文件 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

唠甜嗑 2022-09-13 00:57:40

pid文件主要用于实现单实例运行进程。过程是这样的:

  1. 进程启动,尝试对pid文件加排它锁

    1. 如果失败则表示有一个实例在运行,退出
    2. 如果成功则表示当前是唯一的实例,getpid()的结果写入这个文件,继续运行
  2. 进程退出或崩溃,系统会自动释放排它锁
哆兒滾 2022-09-13 00:57:40

补充一下,除了用来防止启动多个实例。另外就是发送控制信号了。例如nginx -s reload 这种命令就是获取到pid文件中的pid,来对这个pid发送信号实现的。

稚然 2022-09-13 00:57:40

linux 的哲学就是“一切都是文件”。

  • pid 是文件
  • 网络套接字是文件
  • 打印机是文件
  • console 是文件
  • 。。。。

并不是所有的进程都由 pid 文件,pid 文件一般用来防止一个程序重复启动多个副本。

零崎曲识 2022-09-13 00:57:40

用的最多的还是防止启动多个实例

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文