
Ich habe einen Systemdienst, der für ausgewählte Benutzer ausgeführt wird. Name ist serv@<uid>
( <uid>
ist die UID des Benutzers). Ich möchte die Ressourcenbeschränkungen des Benutzers mit dem Dienst teilen (in platzieren user-<uid>.slice
) und ich möchte auch seine Berechtigungen verwenden.
/etc/systemd/system/[email protected]
[Unit]
Description=My service for user %i
[Service]
Type=simple
ExecStart=/usr/local/bin/serv.sh
Restart=always
User=%i
Slice=user-%i.slice
SuccessExitStatus=0 255 SIGKILL SIGTERM
[Install]
WantedBy=multi-user.target
Wenn sich der Benutzer abmeldet, wird der Dienst per SIGTERM beendet. Warum wird der Dienst nicht neu gestartet? Wie kann ich es einrichten, dass der Dienst nicht beendet wird?
Antwort1
Für mich war die Lösung loginctl enable-linger username
. Ohne diese würde der Dienst beendet, wenn sich der Benutzer abmeldete.https://wiki.archlinux.org/index.php/Systemd/User#Automatic_start-up_of_systemd_user_instances
Antwort2
Sie können die Logind-Konfiguration ändern:
/etc/systemd/logind.conf
[Login]
…
KillUserProcesses=no
…
Dies ändert auch das Verhalten anderer Dienste und Hintergrundprozesse (wie screen
, tmux
). SieheAusgabe Nr. 3483;
Lauf systemctl restart systemd-logind
danach.