【发布时间】:2010-06-09 15:32:05
【问题描述】:
我有一个程序可以跟踪其他进程,无论它们是否已终止或仍在运行关于 pid,我这样做是在 /proc 中查看它们的 pid 目录。
但是当一个进程进入睡眠状态时,它的目录是否已经消失了,因为它是我正在监视的进程显示它已终止。
【问题讨论】:
-
我想如果你真的查看了那个目录,你会发现它没有消失了。因此,您的程序中可能存在关于它如何判断程序是否正在运行的错误。你有什么问题?
我有一个程序可以跟踪其他进程,无论它们是否已终止或仍在运行关于 pid,我这样做是在 /proc 中查看它们的 pid 目录。
但是当一个进程进入睡眠状态时,它的目录是否已经消失了,因为它是我正在监视的进程显示它已终止。
【问题讨论】:
忽略你的拼写,不 - 如果你运行的是 linux,你的睡眠进程仍然会出现在 /proc 中。你可以通过创建一个程序“sleep.sh”来试试这个
#!/bin/bash
sleep 5000
然后在后台运行它
./sleep.sh &
然后
ls -l /proc/$!
$!是正在休眠的后台进程的pid。
单独 - 通过轮询 /proc 来跟踪进程是存活还是死亡通常是一个坏主意。当您正在跟踪的进程消失时,完全有可能会启动另一个具有完全相同 pid 的进程。
【讨论】: