進(jìn)程樹(shù)
ChromiumOS系統(tǒng)登錄后的進(jìn)程樹(shù)如下所示:
$ pstree -nulp
init(1)-+-udevd(119)
|-frecon(287)---frecon(338)
|-rsyslogd(380,syslog)-+-{rsyslogd}(403)
| |-{rsyslogd}(404)
| |-{rsyslogd}(405)
| `-{rsyslogd}(408)
|-dbus-daemon(389,messagebus)
|-wpa_supplicant(469,wpa)
|-session_manager(584)---chrome(696,chronos)-+-{chrome}(866)
| |-chrome(869)-+-nacl_helper(896)
| | |-nacl_helper_non(910)
| | `-chrome(917)-+-chrome(2231)-+-{chrome}(2234)
| | | |-{chrome}(2235)
| | | |-{chrome}(2251)
| | | |-{chrome}(2254)
| | | |-{chrome}(2257)
| | | |-{chrome}(2261)
| | | |-{chrome}(2262)
| | | |-{chrome}(2274)
| | | `-{chrome}(2275)
| | `-chrome(2437)-+-{chrome}(2440)
| | |-{chrome}(2441)
| | |-{chrome}(2442)
| | |-{chrome}(2443)
| | |-{chrome}(2444)
| | |-{chrome}(2445)
| | |-{chrome}(2446)
| | `-{chrome}(2447)
| |-{chrome}(918)
| |-{chrome}(919)
| |-{chrome}(994)
| |-{chrome}(996)
| |-{chrome}(997)
| |-{chrome}(998)
| |-{chrome}(999)
| |-{chrome}(1000)
| |-{chrome}(1001)
| |-{chrome}(1004)
| |-{chrome}(1005)
| |-{chrome}(1006)
| |-{chrome}(1007)
| |-{chrome}(1008)
| |-{chrome}(1009)
| |-{chrome}(1010)
| |-{chrome}(1011)
| |-{chrome}(1012)
| |-{chrome}(1014)
| |-chrome(1015)-+-chrome(1022)
| | |-{chrome}(1023)
| | |-{chrome}(1024)
| | |-{chrome}(1025)
| | `-{chrome}(1026)
| |-{chrome}(1017)
| |-{chrome}(1019)
| |-{chrome}(1020)
| |-{chrome}(1027)
| |-{chrome}(1028)
| |-{chrome}(1033)
| |-{chrome}(2134)
| |-{chrome}(2209)
| |-{chrome}(2224)
| |-{chrome}(2228)
| `-{chrome}(2663)
|-debugd(667)
|-powerd(710,power)---{powerd}(728)
|-tcsd(853,tss)-+-{tcsd}(864)
| `-{tcsd}(989)
|-chapsd(857,chaps)
|-firewalld(879)
|-permission_brok(882,devbroker)
|-shill(909)-+-logger(920,syslog)
| `-dhcpcd(2650,dhcp)
|-cryptohomed(987)---{cryptohomed}(1452)
|-periodic_schedu(1098)---sleep(3765)
|-periodic_schedu(1110)---sleep(3769)
|-minijail0(1116)---mtpd(1124,mtp)---{mtpd}(1171)
|-periodic_schedu(1127)---sleep(3774)
|-esif_ufd(1150)-+-{esif_ufd}(1169)
| |-{esif_ufd}(1180)
| |-{esif_ufd}(1214)
| |-{esif_ufd}(1314)
| `-{esif_ufd}(1315)
|-ModemManager(1157,modem)-+-{ModemManager}(1210)
| `-{ModemManager}(1240)
|-minijail0(1170)---cras(1192,cras)---{cras}(1213)
|-metrics_daemon(1181)
|-minijail0(1185)---bluetoothd(1204,bluetooth)
|-avahi-daemon(1196,avahi)---avahi-daemon(1205)
|-update_engine(1199)
|-sshd(1207)-+-sshd(3167)---bash(3171)---pstree(4458)
| `-sshd(4232)---bash(4238)
|-minijail0(1216)---conntrackd(1241,nfqueue)
|-disks(1244)---{disks}(1256)
|-upstart-socket-(1292)
|-warn_collector(1769)
|-sh(1805)-+-tlsdated(1866,tlsdate)---tlsdated-setter(1877,root)
| `-logger(1867)
`-periodic_schedu(1871)---sleep(3782)
- 大括號(hào)中的為線程。
可以看到chrome(696,chronos)進(jìn)程是由session_manager(584)進(jìn)程啟動(dòng)的,并且session_manager(584)是由root用戶執(zhí)行的,而chrome(696,chronos)是由用戶chronos用戶執(zhí)行。
chrome進(jìn)程命令
接下來(lái)再看進(jìn)程chrome(696,chronos)的相關(guān)信息:
$ pstree -nulps 696
init(1)---session_manager(584)---chrome(696,chronos)-+-{chrome}(866)
|-chrome(869)-+-nacl_helper(896)
| |-nacl_helper_non(910)
| `-chrome(917)-+-chrome(2231)-+-{chrome}(2234)
| | |-{chrome}(2235)
| | |-{chrome}(2251)
| | |-{chrome}(2254)
| | |-{chrome}(2257)
| | |-{chrome}(2261)
| | |-{chrome}(2262)
| | `-{chrome}(2275)
| `-chrome(2437)-+-{chrome}(2440)
| |-{chrome}(2441)
| |-{chrome}(2442)
| |-{chrome}(2443)
| |-{chrome}(2444)
| |-{chrome}(2445)
| `-{chrome}(2446)
|-{chrome}(918)
|-{chrome}(919)
|-{chrome}(994)
|-{chrome}(998)
|-{chrome}(999)
|-{chrome}(1000)
|-{chrome}(1001)
|-{chrome}(1004)
|-{chrome}(1005)
|-{chrome}(1006)
|-{chrome}(1007)
|-{chrome}(1008)
|-{chrome}(1009)
|-{chrome}(1010)
|-{chrome}(1011)
|-{chrome}(1012)
|-{chrome}(1014)
|-chrome(1015)-+-chrome(1022)
| |-{chrome}(1023)
| |-{chrome}(1024)
| |-{chrome}(1025)
| `-{chrome}(1026)
|-{chrome}(1017)
|-{chrome}(1019)
|-{chrome}(1020)
|-{chrome}(1027)
|-{chrome}(1033)
|-{chrome}(2209)
|-{chrome}(2224)
|-{chrome}(2228)
|-{chrome}(10988)
`-{chrome}(10990)
因?yàn)?code>pstree默認(rèn)會(huì)顯示線程信息,因此在上邊的輸出中看到其中有很多的線程(大括號(hào)中);因?yàn)閜s命令默認(rèn)不顯示線程信息,因此這里再使用ps命令來(lái)進(jìn)行查看:
$ ps cf -g696
PID TTY STAT TIME COMMAND
696 ? S<sl 3:37 chrome
869 ? S 0:00 \_ chrome
896 ? S 0:00 | \_ nacl_helper
910 ? S 0:00 | \_ nacl_helper_non
917 ? S 0:00 | \_ chrome
2231 ? Sl 0:00 | \_ chrome
2437 ? Sl 0:00 | \_ chrome
1015 ? S<l 1:00 \_ chrome
1022 ? S< 0:00 \_ chrome
對(duì)應(yīng)的具體的命令行依次為:
進(jìn)程命令詳細(xì)信息
- 696:
/opt/google/chrome/chrome --ui-prioritize-in-gpu-process --use-gl=egl --gpu-sandbox-failures-fatal=yes --enable-logging --log-level=1 --use-cras --enable-wayland-server --user-data-dir=/home/chronos --max-unused-resource-memory-usage-percentage=5 --system-developer-mode --login-profile=user --has-chromeos-keyboard --enable-prefixed-encrypted-media --enable-consumer-kiosk --enterprise-enrollment-initial-modulus=15 --enterprise-enrollment-modulus-limit=19 --login-manager --first-exec-after-boot --vmodule=*chromeos/login/*=1,auto_enrollment_controller=1,*plugin*=2,*zygote*=1,*/ui/ozone/*=1,*/ui/display/manager/chromeos/*=1,power_button_observer=2,webui_login_view=2,lock_state_controller=2,webui_screen_locker=2,screen_locker=2 - 869:
/opt/google/chrome/chrome --type=zygote --enable-logging --log-level=1 --vmodule=*chromeos/login/*=1,auto_enrollment_controller=1,*plugin*=2,*zygote*=1,*/ui/ozone/*=1,*/ui/display/manager/chromeos/*=1,power_button_observer=2,webui_login_view=2,lock_state_controller=2,webui_screen_locker=2,screen_locker=2 --user-data-dir=/home/chronos --homedir=/ - 896:
/opt/google/chrome/nacl_helper - 910:
/opt/google/chrome/nacl_helper_nonsfi - 917:
/opt/google/chrome/chrome --type=zygote --enable-logging --log-level=1 --vmodule=*chromeos/login/*=1,auto_enrollment_controller=1,*plugin*=2,*zygote*=1,*/ui/ozone/*=1,*/ui/display/manager/chromeos/*=1,power_button_observer=2,webui_login_view=2,lock_state_controller=2,webui_screen_locker=2,screen_locker=2 --user-data-dir=/home/chronos --homedir=/ - 2231:
/opt/google/chrome/chrome --type=renderer --enable-logging --log-level=1 --use-gl=egl --vmodule=*chromeos/login/*=1,auto_enrollment_controller=1,*plugin*=2,*zygote*=1,*/ui/ozone/*=1,*/ui/display/manager/chromeos/*=1,power_button_observer=2,webui_login_view=2,lock_state_controller=2,webui_screen_locker=2,screen_locker=2 --field-trial-handle=1 --primordial-pipe-token=5E1FBBEDA76DCEC2B1D9D5B6593DC07D --lang=en-US --user-data-dir=/home/chronos --homedir=/home/chronos/u-b11a95cbe6469c62fde2b9b136bf1f2e7aaf19bf --login-profile=user --instant-process --enable-offline-auto-reload --enable-offline-auto-reload-visible-only --blink-settings=disallowFetchForDocWrittenScriptsInMainFrame=true,cssExternalScannerNoPreload=false,cssExternalScannerPreload=true --enable-pinch --num-raster-threads=1 --content-image-texture-target=0,0,3553;0,1,3553;0,2,3553;0,3,3553;0,4,3553;0,5,3553;0,6,3553;0,7,36197;0,8,3553;0,9,36197;0,10,36197;0,11,36197;0,12,36197;0,13,3553;0,14,36197;0,15,3553;0,16,3553;1,0,3553;1,1,3553;1,2,3553;1,3,3553;1,4,3553;1,5,3553;1,6,3553;1,7,3553;1,8,3553;1,9,36197;1,10,3553;1,11,36197;1,12,3553;1,13,3553;1,14,3553;1,15,3553;1,16,3553;2,0,3553;2,1,3553;2,2,3553;2,3,3553;2,4,3553;2,5,3553;2,6,3553;2,7,3553;2,8,3553;2,9,36197;2,10,36197;2,11,36197;2,12,36197;2,13,3553;2,14,3553;2,15,3553;2,16,3553;3,0,3553;3,1,3553;3,2,3553;3,3,3553;3,4,3553;3,5,3553;3,6,3553;3,7,3553;3,8,3553;3,9,3553;3,10,3553;3,11,3553;3,12,3553;3,13,3553;3,14,3553;3,15,3553;3,16,3553;4,0,3553;4,1,3553;4,2,35 - 2437:
/opt/google/chrome/chrome --type=renderer --enable-logging --log-level=1 --use-gl=egl --vmodule=*chromeos/login/*=1,auto_enrollment_controller=1,*plugin*=2,*zygote*=1,*/ui/ozone/*=1,*/ui/display/manager/chromeos/*=1,power_button_observer=2,webui_login_view=2,lock_state_controller=2,webui_screen_locker=2,screen_locker=2 --field-trial-handle=1 --primordial-pipe-token=5A35EBC7CF23C09818C15F2449F6DAE7 --lang=en-US --user-data-dir=/home/chronos --homedir=/home/chronos/u-b11a95cbe6469c62fde2b9b136bf1f2e7aaf19bf --login-profile=user --enable-offline-auto-reload --enable-offline-auto-reload-visible-only --blink-settings=disallowFetchForDocWrittenScriptsInMainFrame=true,cssExternalScannerNoPreload=false,cssExternalScannerPreload=true --enable-pinch --num-raster-threads=1 --content-image-texture-target=0,0,3553;0,1,3553;0,2,3553;0,3,3553;0,4,3553;0,5,3553;0,6,3553;0,7,36197;0,8,3553;0,9,36197;0,10,36197;0,11,36197;0,12,36197;0,13,3553;0,14,36197;0,15,3553;0,16,3553;1,0,3553;1,1,3553;1,2,3553;1,3,3553;1,4,3553;1,5,3553;1,6,3553;1,7,3553;1,8,3553;1,9,36197;1,10,3553;1,11,36197;1,12,3553;1,13,3553;1,14,3553;1,15,3553;1,16,3553;2,0,3553;2,1,3553;2,2,3553;2,3,3553;2,4,3553;2,5,3553;2,6,3553;2,7,3553;2,8,3553;2,9,36197;2,10,36197;2,11,36197;2,12,36197;2,13,3553;2,14,3553;2,15,3553;2,16,3553;3,0,3553;3,1,3553;3,2,3553;3,3,3553;3,4,3553;3,5,3553;3,6,3553;3,7,3553;3,8,3553;3,9,3553;3,10,3553;3,11,3553;3,12,3553;3,13,3553;3,14,3553;3,15,3553;3,16,3553;4,0,3553;4,1,3553;4,2,3553;4,3,3553;4,4,35 - 1015:
/opt/google/chrome/chrome --type=gpu-process --field-trial-handle=1 --enable-logging --gpu-sandbox-failures-fatal=yes --log-level=1 --vmodule=*chromeos/login/*=1,auto_enrollment_controller=1,*plugin*=2,*zygote*=1,*/ui/ozone/*=1,*/ui/display/manager/chromeos/*=1,power_button_observer=2,webui_login_view=2,lock_state_controller=2,webui_screen_locker=2,screen_locker=2 --user-data-dir=/home/chronos --homedir=/ --use-gl=egl --supports-dual-gpus=false --gpu-driver-bug-workarounds=7,8,10,19,23,61,74 --disable-gl-extensions=GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent --gpu-vendor-id=0x8086 --gpu-device-id=0x0f31 --gpu-driver-vendor=Mesa --gpu-driver-version=17.1.0 --gpu-driver-date --user-data-dir=/home/chronos --homedir=/ --enable-logging --log-level=1 --vmodule=*chromeos/login/*=1,auto_enrollment_controller=1,*plugin*=2,*zygote*=1,*/ui/ozone/*=1,*/ui/display/manager/chromeos/*=1,power_button_observer=2,webui_login_view=2,lock_state_controller=2,webui_screen_locker=2,screen_locker=2 --service-request-channel-token=4B437C43F914411337BBBF8467592298 - 1022:
/opt/google/chrome/chrome --type=gpu-broker
至于具體的每個(gè)命令行參數(shù)的意思,等后邊代碼分析完畢后補(bǔ)充。