USER@.SERVICE(5)

BEZEICHNUNG
user@.service, user-runtime-dir@.service, systemd-user-runtime-dir - System-Units zum Starten des Benutzerverwalters

ÜBERSICHT

user@UID.service

user-runtime-dir@UID.service

/usr/lib/systemd/systemd-user-runtime-dir

user-UID.slice

BESCHREIBUNG

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, wenn sie gestartet wird, und dieses dann entfernt, wenn diese Unit gestoppt wird. Es könnte auch Laufzeit-Kontingent-Einstellungen auf /tmp/ und/oder /dev/shm/ für den Benutzer anwenden. 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 user@.service 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).

RESSOURCEN FÜR ANGEMELDETE BENUTZER STEUERN

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.

BEISPIELE

Beispiel 1. Hierarchie von Control-Gruppen mit zwei angemeldeten Benutzern

    $ systemd-cgls
    Control group /:
    -.slice
    ├─user.slice
    │ ├─user-1000.slice
    │ │ ├─user@1000.service
    │ │ │ ├─pulseaudio.service
    │ │ │ │ └─2386 /usr/bin/pulseaudio --daemonize=no
    │ │ │ └─gnome-terminal-server.service
    │ │ │   └─init.scope
    │ │ │     ├─ 4127 /usr/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
    │   └─user@1001.service
    │     ├─init.scope
    │     │ ├─6680 /usr/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 (user@1000.service). Benutzer mit UID 1001 ist mittels ssh (session-20.scope) angemeldet und hat auch eine Benutzerinstanz am laufen (user@1001.service). 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 user@.service-Instanzen sichtbar (pulseaudio.service, gnome-terminal-server.service, init.scope, sleep.service).

Beispiel 2. Standard-Benutzer-Ressourcenbeschränkungen

    $ systemctl cat user-1000.slice
    # /usr/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.

SIEHE AUCH

systemd(1), systemd.service(5), systemd.slice(5), systemd.resource-control(5), systemd.exec(5), systemd.special(7), capsule@.service(5), pam(8)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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: debian-l10n-german@lists.debian.org.