/proc/pid/stat 的持续时间

/proc/pid/stat 的持续时间

我有一个启动子进程的进程,当子进程退出时,扫描/proc/<pid>/stat以收集有关子进程使用的 CPU 和内存的一些信息。然而我担心我在这里的时间是借来的。wait()返回或发送/调用信号处理程序后多久SIGCHLD,它实际上会挂起吗?如果它们持续到需要重用 PID 为止,那就超级方便了,但显然情况并非如此。

答案1

/proc/[pid]当程序退出时消失。看看这个:https://superuser.com/questions/365576/lifetime-of-the-symlinks-from-the-file-descriptors-in-proc-pid-fd

编辑:

等待手册页说

wait() 函数应挂起调用线程的执行,直到调用进程的已终止子进程之一的状态信息可用,或者直到传递一个信号,该信号的操作是执行信号捕获函数或终止该线程。过程。

因此有可能传递了终止子进程的信号。然后wait返回了,但是子进程还没有退出。所以你仍然可以阅读/proc/pid/stat。当子进程退出时,/proc/pid/stat就消失了。

相关内容