我正在嘗試更深入地研究任務管理器。我使用的是Windows 7。
所有正在運行的服務不都是不同的進程嗎?如果是,那麼為什麼有些 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。 ESTABLISHED PID 正在積極運作並連接到某些東西…計算機,但不一定連接到網際網路或區域網路 (LAN)。
在那裡,您可能會看到一個或多個活動連線的 PID,這些連線根本不會出現在任務管理器的服務標籤中。
連接到 LAN 和/或 Internet 後,可能會出現許多已建立的連接,並顯示各種外部位址 IP 位址。它們全部的 PID 可以相同,例如 6008。
您將看到這些協定目前是活動連接,但 PID 可能不會出現在工作管理員中的任何位置;雖然我不確定為什麼。