Zusammenfassung : Ich versuche herauszufinden, warum meine tmux-Sitzung abbricht, wenn ich die Verbindung zu ssh trenne
Details :
Ich habe tmux auf einem Arch Linux-System installiert. Wenn ich eine tmux-Sitzung starte, kann ich mich von ihr trennen und erneut eine Verbindung herstellen, während die ssh-Sitzung aktiv ist. Aber wenn ich meine ssh-Sitzung beende, wird die tmux-Sitzung beendet.
Ich weiß, dass dies nicht das normale Verhalten ist, da die tmux-Sitzung auf einem anderen System weiterläuft, auch wenn die ssh-Sitzung beendet ist und ich nach dem Herstellen einer neuen ssh-Verbindung eine Verbindung zur tmux-Sitzung herstellen kann. Das System, bei dem ein Problem vorliegt, und das System, das ordnungsgemäß funktioniert, weisen sehr ähnliche Konfigurationen auf, sodass ich nicht sicher bin, was zu überprüfen ist.
Ich verwende TMUX Version 1.9a. Das System, auf dem ein Problem vorliegt (für das ich root-Zugriff habe), hat eine Linux-Kernelversion von 3.17.4-1, und das System, das ordnungsgemäß funktioniert, hat die Kernelversion 3.16.4-1-ARCH (auf der ich kein root habe) System). Ich bezweifle, dass die Kernel-Version die Ursache des Problems ist, das ist nur ein Unterschied, den ich bemerkt habe.
Ich dachte, ich würde fragen, ob jemand ein ähnliches Problem gesehen hat und eine mögliche Lösung kennt.
Die genauen Schritte, die zu dem Problem führen, sind:
- ssh zu bearbeiten
- laufe
tmux
um tmux zu starten ctrl-B D
zu lösen (an dieser stelle konnte ich mich wieder anschließen mittmux attach
- Schließen Sie die SSH-Sitzung
- verbinde
tmux attach
dich wieder mit ssh und renne und ich bekomme die nachrichtno sessions
und laufetmux ls
zurückfailed to connect to server: Connection refused
. Dies ist sinnvoll, da der Aufschlag nicht ausgeführt wird. Was für mich keinen Sinn ergibt, ist, warum es in Schritt 4 beendet wird, wenn ich mich von der SSH-Sitzung trenne.
Dehnungsdaten:
Als Antwort auf einen der Kommentare habe ich strace verwendet, um zu sehen, welche Systeme der TMUX-Serverprozess aufruft. Es sieht so aus, als würde der tmux-Prozess beendet, wenn ich meine ssh-Sitzung beende (durch Tippen exit
oder mit ctrl-d
). Hier ist ein Ausschnitt aus dem letzten Teil der Ausgabe von strace.
poll([{fd=4, events=POLLIN}, {fd=11, events=POLLIN}, {fd=6, events=POLLIN}], 3, 424) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=1, si_uid=0} ---
sendto(3, "\17", 1, 0, NULL, 0) = 1
+++ killed by SIGKILL +++
Ich habe dies mit einem anderen System verglichen, auf dem tmux ordnungsgemäß funktioniert, und auf diesem System läuft der tmux-Prozess auch nach dem Beenden weiter. Die Hauptursache scheint zu sein, dass der tmux-Prozess beendet wird, wenn ich die ssh-Sitzung beende. Ich muss einige Zeit mit der Fehlersuche verbringen, um herauszufinden, warum, aber ich dachte, ich würde meine Frage aktualisieren, da der Strace-Vorschlag nützlich war.