【问题标题】:when I use boost::this_thread::sleep, what happens to its pid directory in /proc/{pid}?当我使用 boost::this_thread::sleep 时,它在 /proc/{pid} 中的 pid 目录会发生什么?
【发布时间】:2010-06-09 15:32:05
【问题描述】:

我有一个程序可以跟踪其他进程,无论它们是否已终止或仍在运行关于 pid,我这样做是在 /proc 中查看它们的 pid 目录。

但是当一个进程进入睡眠状态时,它的目录是否已经消失了,因为它是我正在监视的进程显示它已终止。

【问题讨论】:

  • 我想如果你真的查看了那个目录,你会发现它没有消失了。因此,您的程序中可能存在关于它如何判断程序是否正在运行的错误。你有什么问题?

标签: c++ linux


【解决方案1】:

忽略你的拼写,不 - 如果你运行的是 linux,你的睡眠进程仍然会出现在 /proc 中。你可以通过创建一个程序“sleep.sh”来试试这个

#!/bin/bash
sleep 5000

然后在后台运行它

./sleep.sh &

然后

ls -l /proc/$!

$!是正在休眠的后台进程的pid。

单独 - 通过轮询 /proc 来跟踪进程是存活还是死亡通常是一个坏主意。当您正在跟踪的进程消失时,完全有可能会启动另一个具有完全相同 pid 的进程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-05
    • 2013-04-01
    • 2020-09-29
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    相关资源
    最近更新 更多