psツリーでプロセス0を探す

psツリーでプロセス0を探す

ディレクティブで次の文を読みました。

プロセスID 0通常、スワッパーとも呼ばれるスケジューラプロセスです。カーネルの一部であり、システムプロセスと呼ばれるこのプロセスに対応するプログラムはディスクにありません。プロセス番号1通常、起動プロセスの終わりにカーネルによって呼び出されるinitプロセスです。

進行状況を確認してください。

$ pstree -p $$ 
-+= 00001 root /sbin/launchd
 \-+= 00264 me /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal -psn_0_53261
   \-+= 00365 root login -pfl me /bin/bash -c exec -la bash /usr/local/bin/bash
     \-+= 00366 me -bash
       |-+= 06305 me pstree -p 366
       | \--- 06307 root ps -axwwo user,pid,ppid,pgid,command

プロセス1を見つけることができますが、プロセス0はどこにありますか?

ベストアンサー1

BSD はpsPID 0 を表示しません。

$ ps -o pid,ppid,comm -p 0,1,$$
  PID  PPID COMM
    1     0 /sbin/launchd
14705 14704 -zsh

pstreeプロセス情報を取得するために使用されるため、(ps出力に見られるように)明らかにPID 0を表示することはできません。

PID 0を表示するには、OSXでtopActivity Managerを使用してください。

$ top -l1 -pid 0
Processes: 480 total, 2 running, 478 sleeping, 2777 threads
2018/11/15 12:20:36
Load Avg: 1.99, 2.21, 2.13
CPU usage: 6.59% user, 18.33% sys, 75.7% idle
SharedLibs: 207M resident, 50M data, 40M linkedit.
MemRegions: 135141 total, 7727M resident, 63M private, 2624M shared.
PhysMem: 16G used (6717M wired), 61M unused.
VM: 3304G vsize, 1297M framework vsize, 5481932(0) swapins, 6319905(0) swapouts.
Networks: packets: 2367177/1916M in, 1966560/789M out.
Disks: 2569936/63G read, 1879985/62G written.

PID COMMAND     %CPU TIME     #TH   #WQ #PORTS MEM  PURG CMPRS PGRP PPID STATE   BOOSTS %CPU_ME %CPU_OTHRS UID FAULTS  COW MSGSENT   MSGRECV   SYSBSD SYSMACH CSW        PAGEINS IDLEW    POWER INSTRS CYCLES USER #MREGS RPRVT VPRVT VSIZE KPRVT KSHRD
0   kernel_task 0.0  47:24.02 211/8 0   0      71M+ 0B   0B    0    0    running  0[0]  0.00000 0.00000    0   400853+ 0   82636075+ 75828596+ 0      0       295335075+ 0       14150823 0.0   0      0      root N/A    N/A   N/A   N/A   N/A   N/A

おすすめ記事