PID 与 Chromium 多个选项卡和窗口相关联?

laz*_*rus 3 chromium process netstat

在阅读有关 Linux 的文章时,我$netstat -tulpn发现哪个进程正在监听端口。我有:

anupam@JAZZ:~$ sudo netstat -tulpn
[sudo] password for anupam: 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1827/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1992/cupsd      
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      976/mysqld      
tcp6       0      0 :::80                   :::*                    LISTEN      1342/apache2    
tcp6       0      0 ::1:631                 :::*                    LISTEN      1992/cupsd      
tcp6       0      0 :::3689                 :::*                    LISTEN      2582/rhythmbox  
udp        0      0 0.0.0.0:631             0.0.0.0:*                           943/cups-browsed
udp        0      0 0.0.0.0:37759           0.0.0.0:*                           697/avahi-daemon: r
udp        0      0 0.0.0.0:58502           0.0.0.0:*                           1822/dhclient   
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           3039/chromium-brows
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           697/avahi-daemon: r
udp        0      0 127.0.1.1:53            0.0.0.0:*                           1827/dnsmasq    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1822/dhclient   
udp6       0      0 :::5353                 :::*                                697/avahi-daemon: r
udp6       0      0 :::44452                :::*                                697/avahi-daemon: r
udp6       0      0 :::16540                :::*                                1822/dhclient   
Run Code Online (Sandbox Code Playgroud)

有一个PIDfor googleChromium,而我在其中打开了多个窗口和多个选项卡。我读到铬使用进程而不是线程http://blog.chromium.org/2008/09/multi-process-architecture.html,因为端口号用于应用程序到应用程序的连接(所以我知道有一个铬的PID)。但是与 Chromium 相关的其他进程的 PID 呢?

Syl*_*eau 5

Chromium 浏览器确实使用不同的进程来呈现您打开的选项卡:

$ps -aef
[...]
sylvain   6432  2223 20 11:19 ?        00:00:02 chromium-browser --enable-pinch                          
sylvain   6441  6432  0 11:19 ?        00:00:00 /usr/lib/chromium-browser/chrome-sandbox /usr/lib/chromium-browser/chromium-browser --type=zygote
sylvain   6442  6441  1 11:19 ?        00:00:00 chromium-browser --type=zygote                          
sylvain   6446  6442  0 11:19 ?        00:00:00 chromium-browser --type=zygote                          
sylvain   6469  6432  8 11:19 ?        00:00:00 chromium-browser --type=gpu-process --channel=6432.0.2058149686 --supports-dual-gpus=false --gpu-driver-bug-workarounds=1,11,13,15 --disable-accelerated-video-decode --gpu-vendor-
sylvain   6489  6446  1 11:19 ?        00:00:00 /usr/lib/chromium-browser/chro                          
sylvain   6509  6469  0 11:19 ?        00:00:00 chromium-browser --type=gpu-broker                                                                                                                                                 
root      6516     2  0 11:19 ?        00:00:00 [kworker/0:0]
sylvain   6517  6446 10 11:19 ?        00:00:00 /usr/lib/chromium-browser/chro                          
sylvain   6541  6446  5 11:20 ?        00:00:00 /usr/lib/chromium-browser/chro 
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,pid 65176541是我打开的选项卡,但就像您netstat只为 Chromium ( 6432 )返回一个网络进程一样:

$ sudo netstat -tulpn
[sudo] password for sylvain: 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1966/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      3804/cupsd      
tcp        0      0 0.0.0.0:538             0.0.0.0:*               LISTEN      1363/gdomap     
tcp6       0      0 ::1:631                 :::*                    LISTEN      3804/cupsd      
udp        0      0 0.0.0.0:45410           0.0.0.0:*                           2158/dhclient   
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           6432/chromium-brows
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           933/avahi-daemon: r
udp        0      0 127.0.1.1:53            0.0.0.0:*                           1966/dnsmasq    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2158/dhclient   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1715/dhclient   
udp        0      0 192.168.1.36:123        0.0.0.0:*                           2956/ntpd       
udp        0      0 192.168.1.40:123        0.0.0.0:*                           2956/ntpd       
udp        0      0 127.0.0.1:123           0.0.0.0:*                           2956/ntpd       
udp        0      0 0.0.0.0:123             0.0.0.0:*                           2956/ntpd       
udp        0      0 0.0.0.0:49400           0.0.0.0:*                           933/avahi-daemon: r
udp        0      0 0.0.0.0:538             0.0.0.0:*                           1363/gdomap     
udp        0      0 0.0.0.0:631             0.0.0.0:*                           1187/cups-browsed
udp        0      0 0.0.0.0:10080           0.0.0.0:*                           1715/dhclient   
udp6       0      0 :::60417                :::*                                933/avahi-daemon: r
udp6       0      0 :::5353                 :::*                                933/avahi-daemon: r
udp6       0      0 :::47845                :::*                                2158/dhclient   
udp6       0      0 :::8012                 :::*                                1715/dhclient   
udp6       0      0 fe80::3ea9:f4ff:fe1:123 :::*                                2956/ntpd       
udp6       0      0 fe80::3e97:eff:fe81:123 :::*                                2956/ntpd       
udp6       0      0 ::1:123                 :::*                                2956/ntpd       
udp6       0      0 :::123                  :::*                                2956/ntpd  
Run Code Online (Sandbox Code Playgroud)

所以为什么?

  • Chromium 使用多进程架构,将渲染进程与浏览器进程隔离,...
  • Chromium 维护资源调度程序的单个实例,该实例在所有渲染进程之间共享,并在浏览器内核进程中运行。
  • 每个渲染进程通过 IPC 与资源调度程序通信。

资料来源: