GNOME Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ для управлСния Ρ‡Π΅Ρ€Π΅Π· systemd

Π‘Π΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½ Π‘Π΅Ρ€Π³ (Benjamin Berg), ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² Red Hat, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ GNOME, ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠ» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ GNOME Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансами ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ срСдствами systemd, Π±Π΅Π· примСнСния процСсса gnome-session.

Для управлСния Π²Ρ…ΠΎΠ΄ΠΎΠΌ Π² GNOME ΡƒΠΆΠ΅ достаточно Π΄Π°Π²Π½ΠΎ примСняСтся systemd-logind, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отслСТиваСт состояния сСансов Π² привязкС ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, управляСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ сСансов, ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ сСансами, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ окруТСния (Multi-seat), настраиваСт ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ доступа ΠΊ устройствам, прСдоставляСт срСдства для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² спящий Ρ€Π΅ΠΆΠΈΠΌ ΠΈ Ρ‚.ΠΏ.

ΠŸΡ€ΠΈ этом Ρ‡Π°ΡΡ‚ΡŒ связанной с сСансами Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ Π½Π° ΠΏΠ»Π΅Ρ‡Π°Ρ… процСсса gnome-session, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ занимался ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· D-Bus, запуском дисплСйного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² GNOME, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ автозапуска ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ GNOME 3.34 спСцифичныС для gnome-session возмоТности ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ unit-Ρ„Π°ΠΉΠ»ΠΎΠ² для systemd, выполняСмых Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «systemd —user», Ρ‚.Π΅. Π² привязкС ΠΊ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° Π½Π΅ всСй систСмы. ИзмСнСния ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ Π² дистрибутивС Fedora 31, выпуск ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ оТидаСтся Π² ΠΊΠΎΠ½Ρ†Π΅ октября.

ИспользованиС systemd Π΄Π°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ запуск ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ наступлСнии ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… событий, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·ΠΎΡ‰Ρ€Ρ‘Π½Π½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСссов ΠΈΠ·-Π·Π° сбоСв ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ зависимости ΠΏΡ€ΠΈ запускС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² GNОME. Как слСдствиС, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ число постоянно Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… процСссов ΠΈ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти. НапримСр, XWayland Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ выполнСния прилоТСния Π½Π° Π±Π°Π·Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° X11, Π° спСцифичныС для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ оборудования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ оборудования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ для смарткарт Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ вставкС ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π΅Ρ‘ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ).

Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ появились Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ инструмСнты управлСния запуском сСрвисов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… клавиш Π±ΡƒΠ΄Π΅Ρ‚ достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ «systemctl —user stop gsd-media-keys.target». Π’ случаС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанныС с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π»ΠΎΠ³ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ journalctl (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «journalctl —user -u gsd-media-keys.service»), ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π² сСрвисС Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π»ΠΎΠ³Π° («Environment=G_MESSAGES_DEBUG=all»). Π’Π°ΠΊΠΆΠ΅ появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… sandbox-окруТСниях всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² GNOME, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹Π΅ трСбования ΠΊ бСзопасности.

Для сглаТивания ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ старого способа запуска процСссов планируСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ GNOME. Π”Π°Π»Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΡ‚ Ρ€Π΅Ρ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ состояния gnome-session ΠΈ скорСС всСго (ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ ΠΊΠ°ΠΊ «likely») удалят ΠΈΠ· Π½Π΅Π³ΠΎ срСдства запуска процСссов ΠΈ сопровоТдСния D-Bus API. Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ «systemd —user» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Π² разряд ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ трудности для систСм Π±Π΅Π· systemd ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ Π² своё врСмя Π±Ρ‹Π»ΠΎ с systemd-logind. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² своём выступлСнии Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ GUADEC 2019 Π‘Π΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½ Π‘Π΅Ρ€Π³ упомянул ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ старого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° запуска для систСм Π±Π΅Π· systemd, Π½ΠΎ данная информация расходится с ΠΏΠ»Π°Π½Π°ΠΌΠΈ Π½Π° страницС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru