/etc/X11/Xsession.d 文件的用途

/etc/X11/Xsession.d 文件的用途

我使用 linux,对 Xsession 有一些疑问。据我所知,/etc/X11/Xsession脚本是在 X Window System 会话开始时启动的。但是当我检查代码时,/etc/X11/Xsession.d我有点困惑。这里的脚本按顺序启动,99x11-common_start最后一个包含exec $STARTUP我记录的变量,它只是init --user。所以事实证明,整个脚本都是为启动 init --user 而编写的?我删除了一些文件,并使用不同的用户登录,一切正常,(例如75dbus_dbus-launch)。这是否意味着 Xsession 只启动init --user?会话 dbus 呢,谁启动它?谢谢。

答案1

启动时会启动两个 DBus 守护进程:--session& --system。Xsession 中的守护进程是会话总线(用户拥有它)。

~$ ps aux | grep dbus-daemon
message+   944  0.0  0.0  44504  5640 ?        Ss   07:55   0:01 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
sneetsh+  2428  0.0  0.0  43864  4340 ?        Ss   07:56   0:00 dbus-daemon --fork --session --address=unix:abstract=/tmp/dbus-xcqH0l6FdF
sneetsh+  2522  0.0  0.0  43028  3932 ?        S    07:56   0:00 /usr/bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3
sneetsh+  4593  0.0  0.0  14328   964 pts/19   S+   08:17   0:00 grep --color=auto dbus-daemon

以上输出来自 Ubuntu16.04和用途systemd

  • 系统总线由systemd

    ~$ service dbus status
    ● dbus.service - D-Bus System Message Bus
       Loaded: loaded (/lib/systemd/system/dbus.service; static; vendor preset: enabled)
       Active: active (running) since Wed 2016-07-06 07:55:13 CET; 27min ago
         Docs: man:dbus-daemon(1)
     Main PID: 944 (dbus-daemon)
        Tasks: 1
       Memory: 3.5M
          CPU: 1.574s
       CGroup: /system.slice/dbus.service
               └─944 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
    
  • 会话总线由upstart

    ~$ initctl status dbus 
    dbus start/running, process 2428
    
    ~$ initctl show-config dbus 
    dbus
      start on starting xsession-init
    

    (请注意,此会话 upstart 守护进程,而不是 init/system upstart 守护进程)

之前的 Ubuntu15.10使用 upstart init。

您可以使用 来验证这些pstree -up。另一种方法是,您可以DBUS_SESSION_BUS_ADDRESS像 一样从已删除的文件中记录变量STARTUP

相关内容