【发布时间】:2020-06-25 01:17:29
【问题描述】:
我一直在尝试了解特定挂起的 cron 进程在我的 linux 服务器中启动的时间。
我通过查看 /proc/pid 的创建时间以及 ps ef 命令检查了这一点。
但有时 pid 目录创建时间和 ps 中的进程时间不同。 cron 应该运行的时间和 ps 命令显示的内容匹配。
有人可以在这里帮助我吗,这是检查进程开始时间以及为什么它们不同的最值得信赖的方法。
【问题讨论】:
我一直在尝试了解特定挂起的 cron 进程在我的 linux 服务器中启动的时间。
我通过查看 /proc/pid 的创建时间以及 ps ef 命令检查了这一点。
但有时 pid 目录创建时间和 ps 中的进程时间不同。 cron 应该运行的时间和 ps 命令显示的内容匹配。
有人可以在这里帮助我吗,这是检查进程开始时间以及为什么它们不同的最值得信赖的方法。
【问题讨论】:
根据老Red Hat answer关于/proc/PID的属性:
/proc 中的文件不存在自己的文件。它们是蜉蝣, 当你看着它们时一时冲动发明的,被遗忘了 一旦你移开视线。唯一对那些人有意义的时间 文件是“现在”。
所以 2.4 的行为不是错误。 2.6的行为仅此而已 而不是这些文件获取方式不同的工件 首次引用后缓存在那里; fork 一个进程,等待一个 小时然后查询/proc,你会发现时间戳是 “现在”;它们是在您第一次查看 /proc 时发明的,不是 该过程已创建。他们与流程无关 自己。
因此,给时间戳赋予任何意义是不合适的 /过程;它们毫无意义,而且很容易改变。
所以相信ps的输出更可靠。
【讨论】: