elogind
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:
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:
/etc/portage/make.conf
USE="elogind -systemd"
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.
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.
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:
~/.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.
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:
/etc/elogind/system-sleep/example.sh
Pé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
- bug #599470 - sys-auth/elogind integration into Gentoo tracker bug.
- News item - Desktop profile switching USE default to elogind