[email protected],
[email protected], systemd-user-runtime-dir -
System-Units zum Starten des Benutzerverwalters
user@
UID.service
user-runtime-dir@
UID.service
/lib/systemd/systemd-user-runtime-dir
user-
UID.slice
Der
systemd(1)-Systemverwalter (PID 1) startet die
Benutzerverwalterinstanz als user@
UID.service, bei der die numerische
UID des Benutzers als die Kennzeichnung der Instanz verwandt wird. Diese
Instanzen verwenden die gleichen Programme wie der Systemverwalter, werden
allerdings in einem Modus ausgeführt, indem sie eine andere Gruppe von
Units starten. Jede
systemd --user-Instanz verwaltet eine für
den Benutzer spezifische Hierarchie an Units. Siehe
systemd(1)
für eine Diskussion der Units und
systemd.special(7) für
eine Liste der Units, die die Grundlage der Unit-Hierarchie der System- und
Benutzer-Units bilden.
user@
UID.service wird durch die System-Unit user-runtime-dir@
UID.service begleitet, die das Laufzeitverzeichnis des Benutzers
/run/user/
UID erstellt und dieses dann entfernt, wenn diese Unit
gestoppt wird. user-runtime-dir@
UID.service führt das Programm
systemd-user-runtime-dir aus, um die eigentliche Arbeit zu erledigen.
Benutzerprozesse können durch die Instanz
[email protected] gestartet werden.
In diesem Fall werden sie Teil dieser Unit in der System-Hierarchie sein. Sie
können auch woanders gestartet werden, beispielsweise durch
sshd(8) oder durch einen Display-Manager wie
gdm. In diesem Fall
bilden sie eine .scope-Unit (siehe
systemd.scope(5)). Sowohl
user@
UID.service als auch die Bereichs-Units werden unter der user-
UID.slice gesammelt.
Individuelle user-
UID.slice-Scheiben werden unter user.slice gesammelt,
siehe
systemd.special(7).
Optionen, die die für angemeldete Benutzer verfügbaren Ressourcen
steuern, können auf verschiedenen Ebenen konfiguriert werden. Wie im
vorherigen Abschnitt beschrieben, enthält user.slice die Prozesse aller
Benutzer, so dass jede Ressourcenbeschränkung auf dieser Scheibe
für alle Benutzer gilt. Normalerweise würde dieses durch
Ergänzungen konfiguriert, z.B.
/etc/systemd/system/user.slice.d/resources.conf.
Die Prozesse eines einzelnen Benutzers werden unter user-
UID.slice
gesammelt. Ressourcenbeschränkungen für diesen Benutzer
können durch Ergänzungen für diese Unit konfiguriert
werden, z.B. /etc/systemd/system/user-1000.slice.d/resources.conf. Falls diese
Begrenzungen stattdessen für alle Benutzer gelten sollen, können
sie durch Ergänzungen für den abgeschnittenen Unit-Namen,
user-.slice, konfiguriert werden. Beispielsweise wird die Konfiguration in
/etc/systemd/system/user-.slice.d/resources.conf in allen user-
UID.slice-Units eingebunden, siehe
systemd.unit(5) für
eine Diskussion des Ergänzungsmechanismus.
Wenn sich ein Benutzer anmeldet und für diese Sitzung eine .scope-Unit
erstellt wird (siehe vorherigen Abschnitt), kann die Erstellung der
Bereichs-Unit durch
pam_systemd(8) gelenkt werden. Dieses PAM-Modul
kommuniziert mit
systemd-logind(8), um den Sitzungsbereich zu erstellen
und Zugriff auf Hardwareressourcen bereitzustellen.
Ressourcenbeschränkungen für den Bereich können durch die
PAM-Modulkonfiguration konfiguriert werden, siehe
pam_systemd(8). Es
ist auch möglich, sie durch die normale Unit-Konfiguration zu
konfigurieren, aber da der Name der Scheiben-Unit im Allgemeinen
unvorhersehbar ist, ist dies weniger nützlich.
Im Allgemeinen können alle Ressourcen, die für Units gelten,
für user@
UID.service und die oben beschriebenen Scheiben-Units
konfiguriert werden, siehe
systemd.resource-control(5) für einen
Überblick.
Beispiel 1. Hierarchie von Control-Gruppen mit zwei
angemeldeten Benutzern
$ systemd-cgls
Control group /:
-.slice
├─user.slice
│ ├─user-1000.slice
│ │ ├─[email protected]
│ │ │ ├─pulseaudio.service
│ │ │ │ └─2386 /usr/bin/pulseaudio --daemonize=no
│ │ │ └─gnome-terminal-server.service
│ │ │ └─init.scope
│ │ │ ├─ 4127 /libexec/gnome-terminal-server
│ │ │ └─ 4198 zsh
│ │ ...
│ │ └─session-4.scope
│ │ ├─ 1264 gdm-session-worker [pam/gdm-password]
│ │ ├─ 2339 /usr/bin/gnome-shell
│ │ ...
│ │ ├─session-19.scope
│ │ ├─6497 sshd: zbyszek [priv]
│ │ ├─6502 sshd: zbyszek@pts/6
│ │ ├─6509 -zsh
│ │ └─6602 systemd-cgls --no-pager
│ ...
│ └─user-1001.slice
│ ├─session-20.scope
│ │ ├─6675 sshd: guest [priv]
│ │ ├─6708 sshd: guest@pts/6
│ │ └─6717 -bash
│ └─[email protected]
│ ├─init.scope
│ │ ├─6680 /lib/systemd/systemd --user
│ │ └─6688 (sd-pam)
│ └─sleep.service
│ └─6706 /usr/bin/sleep 30
…
Benutzer mit UID 1000 ist mittels
gdm (session-4.scope) und
ssh(1)
(session-19.scope) angemeldet. Es läuft auch eine Benutzerinstanz
für ihn (
[email protected]). Benutzer mit UID 1001 ist mittels
ssh (session-20.scope) angemeldet und hat auch eine Benutzerinstanz am
laufen (
[email protected]). Dies sind alle (Blatt-)System-Units und bilden
Teil der Scheiben-Hierarchie, mit user-1000.slice und user-1001.slice
unterhalb von user.slice. Benutzer-Units sind unterhalb von
[email protected] sichtbar (pulseaudio.service,
gnome-terminal-server.service, init.scope, sleep.service).
Beispiel 2. Standard-Benutzer-Ressourcenbeschränkungen
$ systemctl cat user-1000.slice
# /lib/systemd/system/user-.slice.d/10-defaults.conf
# …
[Unit]
Description=Benutzerscheibe von UID %j
After=systemd-user-sessions.service
[Slice]
TasksMax=33%
Die user-
UID.slice-Units haben standardmäßig keine
Unit-Datei. Die Ressourcenbeschränkungen werden durch
Ergänzungen gesetzt, die leicht ersetzt oder mit dem im ersten Absatz
diskutierten Standardergänzungsmechanismus erweitert werden
können.
systemd(1),
systemd.service(5),
systemd.slice(5),
systemd.resource-control(5),
systemd.exec(5),
systemd.special(7),
pam(8)
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann
<
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer