$ sudo lsof +E -a -U -p 1480
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1001/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Xorg 717 root 43u unix 0xffff975eacf2d400 0t0 30862 @/tmp/.X11-unix/X0 type=STREAM ->INO=28661 1480,lxtermina,3u
dbus-daem 980 t 34u unix 0xffff975eacf2fc00 0t0 30865 /run/user/1000/bus type=STREAM ->INO=28666 1480,lxtermina,9u
dbus-daem 1073 t 13u unix 0xffff975eacf2c400 0t0 28664 @/tmp/dbus-vtzJFcQ5Cy type=STREAM ->INO=28663 1480,lxtermina,5u
lxtermina 1480 t 3u unix 0xffff975eacf2c000 0t0 28661 type=STREAM ->INO=30862 717,Xorg,43u
lxtermina 1480 t 5u unix 0xffff975eacf2d000 0t0 28663 type=STREAM ->INO=28664 1073,dbus-daem,13u
lxtermina 1480 t 7u unix 0xffff975eacf2f000 0t0 28665 /run/user/1000/.lxterminal-socket- type=STREAM
lxtermina 1480 t 9u unix 0xffff975eacf2e800 0t0 28666 type=STREAM ->INO=30865 980,dbus-daem,34u
lxterminal进程与Xorg进程进行通信,以实现lxterminal的GUI。
那么和dbus通信是做什么用的呢?它只是一个终端仿真器,为什么要使用dbus呢?
谢谢。
答案1
请注意,您的系统上可能有多个 DBus 实例:
- 这系统总线,其套接字位于
/var/run/dbus/system_bus_socket
或类似目录,只能由 root 写入。它在引导时启动。 - 这用户会话总线它在您启动 GUI 桌面会话时启动,并在您注销时消失。
- 这无障碍巴士,最初使用 CORBA,但现在已切换到更轻量级的 DBus。它支持桌面环境的各种辅助功能。
由于该dbus-daemon
进程正在您自己的用户帐户上运行
LXTerminal 支持多个选项卡。程序的所有实例共享相同的进程以减少内存使用。
我个人不使用 LXTerminal,但这可能是它使用 DBus 的主要原因:当您尝试lxterminal
通过单击桌面图标或菜单来启动新窗口时,启动lxterminal
过程可能会使用 D-Bus 来查看是否有另一个窗口它的实例已经在运行。
如果已经有一个 LXTerminal 进程正在运行,则新进程只需向已运行的进程发送“使用这些选项打开一个新窗口/选项卡...”DBus 消息,然后退出。然后,已经运行的 LXTerminal 进程将根据其设置和/或传递给它的选项打开一个新窗口或设置一个新选项卡。