在 Windows 中有许多方法可以检查进程 ID。
例如,使用 PowerShell 命令:
ps | select Id, ProcessName | Sort Id | ft -AutoSize
Run Code Online (Sandbox Code Playgroud)
我们看到以下输出:
Id ProcessName
-- -----------
0 Idle
4 System
264 svchost
388 smss
476 csrss
536 wininit
580 winlogon
620 services
628 lsass
728 svchost
828 dwm
1060 chrome
1080 rundll32
1148 vmms
1620 spoolsv
2912 taskhostex
3020 explorer
...
Run Code Online (Sandbox Code Playgroud)
所有进程 ID 都是偶数,而且它们都是4 的倍数。
在任何基于 Windows NT 的 Windows 版本上都没有奇怪的进程 ID。
这是什么原因?
我的 Google-fu 让我失望了!
在 Linux 上,PID 最低的进程的 PID 为init1,因为它是内核加载后第一个启动的进程,并负责启动所有其他进程。
pi@raspberry:~ $ ps -ef --sort=pid | head -n 5
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jan22 ? 00:02:20 /sbin/init
root 2 0 0 Jan22 ? 00:00:00 [kthreadd]
root 3 2 0 Jan22 ? 00:05:54 [ksoftirqd/0]
root 5 2 0 Jan22 ? 00:00:00 [kworker/0:0H]
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,PID 最低的进程的 PID 为System4。
PS C:\Users\msbob> Get-Process | Sort-Object Id | Select -First 5
Handles NPM(K) …Run Code Online (Sandbox Code Playgroud)