elogind

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Elogind and the translation is 100% complete.
Other languages:

Az elogind a systemd projektjében lévő logind programnak a neve, amely külön, önálló programcsomagba van belerakva. Olyan felhasználók számára készült, akik előnyben részesítik a nem systemd alapú init-rendszert, de továbbra is szeretnének olyan népszerű szoftvereket használni, mint a KDE vagy a GNOME, amelyek egyébként erősen függenek a systemd init-rendszertől.

Telepítés

Kernel

A következő kernelbeállítások ajánlottak:

KERNEL
General setup  --->
    [*] Control Group support  --->
File systems  --->
    [*] Inotify support for userspace

Abban a valószínűtlen (és nem ajánlott) esetben, ha a normál kernelfunkciók engedélyezve vannak a kézi konfiguráláshoz, akkor az elogind az eventpoll, signalfd() és timerfd() támogatást is igényli. A legtöbb felhasználó figyelmen kívül hagyhatja ezt.

USE jelölőzászlók

USE flags for sys-auth/elogind The systemd project's logind, extracted to a standalone package

+acl Add support for Access Control Lists
+pam Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip
+policykit Enable PolicyKit (polkit) authentication support
audit Enable support for Linux audit subsystem using sys-process/audit
cgroup-hybrid Use hybrid cgroup hierarchy instead of unified (OpenRC's default).
debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

Létezik egy globális elogind USE jelölőzászló, amely lehetővé teszi az elogind támogatását más programcsomagokban. Az programütközések elkerülése érdekében ajánlott letiltani a többi munkamenet-követő (systemd) támogatást is:

FILE /etc/portage/make.conf
USE="elogind -systemd"
Warning
Az elogind és a systemd egyidejű használata nincs tesztelve és nem javasolt!

Emerge

A USE jelölőzászlók frissítése után frissítse a rendszert, hogy a változtatások érvénybe lépjenek:

root #emerge --ask --changed-use --deep @world

Konfiguráció

Szolgáltatás

Az elogind-t úgy kell beállítani, hogy az rendszerindításkor induljon el:

root #rc-update add elogind boot

Ha a D-Bus az USE="elogind" jelölőszűzlóval van telepítve, akkor az elogind szolgáltatás elindulása rendszerindításkor kiváltja a dbus rendszerszolgáltatás automatikusan betöltődését.

Alternatív megoldásként az elogind igény szerint elindítható az elsőként kérő program által (például egy kompatibilis display manager-vel), a rendszer dbus szolgáltatásán keresztül.

Warning
Ha problémák merülnek fel a kikapcsolással/újraindítással/felfüggesztéssel stb. a munkaasztali környezetből történő működése során, akkor az elogind-szolgáltatás rendszerindítási futási szintre való elhelyezése biztosítja, hogy az elogind-szolgáltatás megfelelően induljon el, még mielőtt bármely felhasználó bejelentkezik, és ezáltal meg kell, hogy oldódjon a probléma.

Ezenkívül, ha a pam USE jelölőzászlóval épül fel, akkor az elogind olyan időpillanatban aktiválódik, amikor az első felhasználó bejelentkezik a rendszerbe.

Warning
Ahhoz, hogy az elogind aktiválja a munkamenetet először egy VT-parancssorban, a sys-apps/shadow programcsomagot a pam USE jelölőzászlóval is fel kell építeni, mivel ez biztosítja a /bin/login fájlt. Ez a koncepció minden más használt grafikus bejelentkezéskezelőre vagy alternatív parancssor alapú bejelentkezési programra is vonatkozik. Ebben az esetben azokat a programcsomagokat is mind PAM jelölőzászlóval kell létrehozni.

A startx D-Bus integráció

Ha elogin munkamenetet szeretne létrehozni az X szerver startx használatával (display manager helyett), akkor adja hozzá a következőt a felhasználó ~/.xinitrc fájljához:

FILE ~/.xinitrc
exec dbus-run-session <WINDOW_MANAGER>

A fenti példában a WINDOW_MANAGER szöveget a valós ablakkezelő nevére vagy egyetlen alkalmazásra kell kicserélni.

Tip
Ez az exec parancs elindítja a dbus-daemon --system programot, amely elindítja az ön ablakkezelőjét. A program nem fogja végrehajtani a további parancsokat, ha azok az "exec" sor után vannak elhelyezve.

Felfüggesztés/Hibernációból történő felébredés/Thaw hook szkriptek

Az elogind-val sokkal kényelmesebb a helyzet. A felfüggesztési/folytatási és hibernálási/olvadási hook szkripteknek az /etc/elogind/system-sleep/ könyvtárban kell lenniük, és a $1 (pre vagy post) és a $2 (suspend, hibernate, vagy a hybrid-sleep) változókat kell használniuk. Például az elogind esetén a hook szkript a következő formátumú lehet:

FILE /etc/elogind/system-sleep/example.shPélda az elogind hook használatára
#!/bin/bash
case $1/$2 in
  pre/*)
    # Put here any commands expected to be run when suspending or hibernating.
    ;;
  post/*)
    # Put here any commands expected to be run when resuming from suspension or thawing from hibernation.
    ;;
esac

Ne felejtse el végrehajthatóvá tenni a hook szkripteket:

root #chmod +x /etc/elogind/system-sleep/example.sh

Használat

loginctl

A loginctl parancs használható a bejelentkezéskezelő vezérlésére és önmagának az elemzésére is. Például a rendszer leállításához vagy újraindításához futtassa a következő parancsot:

user $loginctl poweroff
user $loginctl reboot

Például a rendszer felfüggesztéséhez, hibernálásához vagy hibrid felfüggesztéséhez futtassa a következő parancsot:

user $loginctl suspend
user $loginctl hibernate
user $loginctl hybrid-sleep

A rendszer felfüggesztéséhez, majd hibernált állapotba helyezéséhez, ha a rendszer fel van függesztve, bizonyos tétlenség után:

user $loginctl suspend-then-hibernate

Ahol a hibernálási késleltetés megadható az /etc/elogind/logind.conf fájlban.

Hibaelhárítás

A teljes működőképesség megerősítése

Maga a loginctl futtatása jelzi az ÖSSZES munkamenetet/seat-eket/felhasználókat/tty-ket, amelyeknél az elogind teljesen aktiválva van. Például:

user $loginctl
SESSION  UID USER      SEAT  TTY 
      1    0 root      seat0 tty1
      2 1000 larry     seat0 tty2
 
2 sessions listed.

Az XDG környezeti változók jelenlétének ellenőrzése hasonló eredményeket produkál, még a grafikus felhasználói felület betöltése előtt is. Például:

user $env | grep "XDG"
XDG_CONFIG_DIRS=/etc/xdg:/etc/xdg
XDG_SEAT=seat0
XDG_SESSION_TYPE=tty
XDG_SESSION_CLASS=user
XDG_VTNR=2
XDG_SESSION_ID=2
XDG_RUNTIME_DIR=/run/user/1000
XDG_DATA_DIRS=/usr/local/share:/usr/share:/usr/share

Konfliktus a hidepid használatakor a proc -ban

Ha a procfs felvan csatolva a hidepid=2 és a gid=wheel paraméterekkel, akkor programütközések lesznek az elogind-vel. Ennek megváltoztatásához a gid-t gid=polkitd-re kell módosítani.

Tekintse meg ezt a fórumbejegyzést: https://forums.gentoo.org/viewtopic-t-1099870.html .

PAM

Ha pam jelölőzászlót használ, akkor győződjön meg arról, hogy nincsenek ütköző függőben lévő módosítások, amelyek az /etc könyvtárba való írásra várnának. (Futtassa a dispatch-conf parancsot az /etc/pam.d ütközések egyesítéséhez).

Erősítse meg, hogy ezek a változások megtörténtek ebben a két /etc/pam.d fájlban:

user $grep -r "elogind" /etc/pam.d/
/etc/pam.d/elogind-user: session optional pam_elogind.so
/etc/pam.d/system-login: -session        optional        pam_elogind.so

Külső források