什么是.pid文件,它包含什么?


199

我最近遇到了一个扩展名为.pid的文件,并在文件内部进行了浏览,但没有发现太多。该文档说:

Pid-File是一个包含进程标识号(pid)的文件,该文件存储在文件系统的定义明确的位置,因此允许其他程序找出正在运行的脚本的pid。

任何人都可以对此进行更多说明,或指导我了解pid文件中包含的内容的详细信息吗?

Answers:


210

pid文件包含给定程序的进程ID(数字)。例如,Apache HTTPD可以将其主进程号写入pid文件(这是一个常规文本文件,仅此而已),然后再使用其中包含的信息自行停止。您还可以使用以下信息来自己杀死进程:cat filename.pid | xargs kill


4
为什么不按名称查找过程呢?当您只需要运行“ pidof $ process_name”并获取ID时,为什么还要维护.pid文件呢?
Shnatsel

14
@Shnatsel:因为该名称可能正在运行两个进程,所以您需要知道哪个进程负责 PID文件。还有其他原因,可在此处找到更多详细信息:unix.stackexchange.com/questions/12815/…– 2013
user4815162342

2
在这种情况下,将有2个pid文件,您将面临与PID查找相同的问题。因此,在这种情况下以及我能想到的任何其他情况下,pidfile都没有好处,只会使事情复杂化。我怀疑它们要么出现在procfs之前出现,要么被用作可移植性工具,因为procfs接口在Solaris上与Linux完全不同,例如。
Shnatsel

3
只是一件事:echo filename.pid | xargs kill不会终止进程。我猜你的意思是:echo $(cat filename.pid) | xargs killecho <process ID> | xargs kill
亚历山德拉·德·奥利维拉

2
@AlexandrodeOliveira使用echo和cat而不是正义有好处cat filename.pid | xargs kill吗?
Simon A. Eugster

-1

要了解pid文件,请参阅此DOC

有时某些应用程序需要额外的插件和实用程序的额外支持。因此,它将使用此pid文件来跟踪这些实用程序和插件进程的运行ID。

这就是为什么每次重新启动应用程序时都必须重新启动所有必要的插件和从属应用程序的原因,因为pid文件将变得过时。


8
您的第一个链接并未真正回答问题。
2014年

5
尽管链接的材料理论上可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
Toby Speight,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.