1

Я с 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 ответ1

0

При загрузке запускается два демона 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

Приведенный выше вывод был из Ubuntu 16.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
    

    (Имейте в виду, что это демон выгрузки сеанса, НЕ инициатор инициализации / запуска системы)

Ubuntu до 15.10 использует upstart init.

Вы можете проверить это с помощью pstree -up . Другой способ, которым вы можете регистрировать переменную DBUS_SESSION_BUS_ADDRESS из файла, который вы удалили, как вы это сделали с STARTUP .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .