我正在尝试深入研究任务管理器。我使用的是 Windows 7。在任务管理器的服务选项卡中,我们可以看到所有服务,但有些 PID 会显示,而有些则不会。
所有正在运行的服务不是都是不同的进程吗?如果是,那么为什么没有显示某些 PID。
答案1
不 - 并非所有服务都在不同的进程中运行。一组服务在共享主机 ( svchost.exe
) 的控制下运行是可能的(也很常见)。您可以在维基百科文章中找到更多信息:http://en.wikipedia.org/wiki/Svchost.exe
但即使 [服务是共享的],也会显示其 pid(或更准确地说是其主机的 PID)。在您的情况下,没有 PID 的进程只是没有运行(已停止),因此没有进程(也没有 PID)
答案2
如果您查看这些服务的状态,您会发现它们已停止,因此显然没有与它们相关的进程。
答案3
基本而言,只有当前正在运行的进程才会在任务管理器的服务选项卡下显示 PID。要亲自查看和确认这一点,请按照以下说明操作。
在 Windows 7 中,按住 ctrl + alt + del,然后选择“启动任务管理器”。在任务管理器的“服务”选项卡下,单击“状态”列。这将对所有服务进行排序,将“正在运行”列在最上面,“已停止”列在最下面。转到“正在运行”和“已停止”进程相遇的位置,然后查看 PID 列,您将能够轻松看到只有当前正在运行的进程才会显示 PID。已停止的服务在 PID 列中不会显示任何内容。
然而,
运行的活动连接协议可能会有 PID 未显示在任务管理器的服务选项卡下。要亲自查看此信息,请按照以下说明操作。
在 Windows 7 中,转到开始菜单并输入 cmd。将弹出一个黑色窗口。在光标闪烁的位置,输入 netstat -ano (netstatSPACEDASHano)。这将显示计算机上的所有活动连接。您可以查看正在监听或已建立的协议的 PID。已建立的 PID 正在积极运行并连接到某个东西……计算机,但不一定连接到互联网或局域网 (LAN)。
您可能会看到一个或多个活动连接的 PID,这些 PID 根本没有出现在任务管理器的服务选项卡中。
一旦连接到 LAN 和/或 Internet,可能会出现许多已建立的连接,其中显示各种外部地址 IP 地址。所有连接的 PID 可能相同,例如 6008。
您将看到这些协议当前是活动连接,但 PID 可能不会出现在任务管理器的任何地方;虽然我不确定为什么。