Benjamin Berg (
GNOME login management has been used for quite some time now.
At the same time, part of the session-related functionality remained on the shoulders of the gnome-session process, which was responsible for managing via D-Bus, launching the display manager and GNOME components, organizing autorun of user-specified applications. During the development of GNOME 3.34, gnome-session-specific features were packaged as unit files for systemd to run in "systemd --user" mode, i.e. in relation to the environment of a particular user, and not the entire system. The changes have already been applied in the Fedora 31 distribution, which is expected to be released at the end of October.
The use of systemd made it possible to organize the launch of handlers on demand or on the occurrence of certain events, as well as more sophisticated response to premature termination of processes due to failures, and extensive dependency handling when starting GNOME components. As a result, you can reduce the number of constantly running processes and reduce memory consumption. For example, XWayland can now only be launched when trying to run an application based on the X11 protocol, and hardware-specific components, only with such hardware (for example, handlers for smart cards will be launched when a card is inserted and terminated when it is removed).
More flexible tools for managing the launch of services have appeared for the user, for example, to disable the media key handler, it will be enough to execute βsystemctl βuser stop gsd-media-keys.targetβ. In case of problems, the logs associated with each handler can be viewed with the journalctl command (for example, "journalctl -user -u gsd-media-keys.service"), after enabling debug logging in the service ("Environment=G_MESSAGES_DEBUG=all"). It also became possible to run all GNOME components in isolated sandbox environments, which are subject to increased security requirements.
To smooth the transition, support for the old way of running processes
Source: opennet.ru