systemd / ssh / reboot: Sitzung hängt

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: systemd / ssh / reboot: Sitzung hängt

Beitrag von MSfree » 20.02.2017 19:59:05

TomL hat geschrieben: Nee! Die Reihenfolge kann man im Log nachsehen:

Code: Alles auswählen

$ journalctl -b -1 -u network.target -u ssh
...
Feb 20 19:45:12 dell-e6320 sshd[1801]: pam_systemd(sshd:session): Failed to release session: Connection reset by peer
Doch, denn der sshd Prozeß mit der PID 1801 kann nicht gestoppt werden, weil da das Netz schon weg ist.
Wobei ich unsicher bin, ob das auch gilt, wenn der Networkmanager seine Finger im Spiel hat
Meinen Test habe ich ohne Networkmanager durchgeführt, Netzwerk also ganz oldschool via /etc/network/interfaces.

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: systemd / ssh / reboot: Sitzung hängt

Beitrag von heisenberg » 21.02.2017 08:35:11

MSfree hat geschrieben: Bei einem Shutdown wird systemd wohl den Parent-sshd mit SIGTERM beenden, die Childprozesse leben aber weiter, wahrscheinlich sogar über den Zeitpunkt hinaus, wo die Netzwerkschnittstelle(n) abgehängt werden. Das Resultat ist, daß die remote Loginshell hängt.
Das erinnert mich an zwei Dinge, weiss jetzt nicht ob das etwas mit diesem Phänomen zu tun hat:
  1. Ist es nicht eine spezielle Fähigkeit von systemd, das es neu erzeugte Kindprozesse verfolgen kann(cgroups) und deswegen grundsätzlich auch beenden kann(wenn es denn so vorgesehen ist)?
  2. systemd killt Hintergrundprozesse von normalen, lokalen login-Sitzungen, wenn man das nicht speziell aktiviert.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: systemd / ssh / reboot: Sitzung hängt

Beitrag von MSfree » 21.02.2017 11:03:34

heisenberg hat geschrieben:Ist es nicht eine spezielle Fähigkeit von systemd, das es neu erzeugte Kindprozesse verfolgen kann(cgroups) und deswegen grundsätzlich auch beenden kann(wenn es denn so vorgesehen ist)?
Das Problem ist bei SSH aber, daß das Beenden von Childprozessen zu unerwünschten Nebeneffekten führen kann. Stell dir vor, ein Admin loggt sich per SSH auf einem Server ein, der irgendwo in Weitwegistan in einem Rechenzentrum steht. Dort will er SSH umkonfigurieren und stoppt dazu den sshd. Würde systemd nun alle Childprozesse beenden, wäre die Loginsession auch weg. Viel schlimmer ist dann aber, daß er sich nicht einmal erneut einloggen kann, weil der Dienst ja beendet wurde, du kommst also an die Kiste gar nicht mehr ran.

In diesem Fall ist es wohl besser, die Childprozesse leben zu lassen und in Kauf zu nehmen, daß man bei einem Reboot einen hängeden Client hat, den man aber einfach lokal auf dem Client mit kill abschiessen kann.

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: systemd / ssh / reboot: Sitzung hängt

Beitrag von heisenberg » 21.02.2017 11:43:57

Ob das jetzt gut oder schlecht ist, war jetzt nicht unbedingt die Frage, die ich aufwerfen wollte, sondern nur was vielleicht abläuft.

Mir hat das auch nicht gefallen, das per Default Hintergrundprozesse von systemd beim logout aufgeräumt werden.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Antworten