Я с 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
.