tmux-sitzung in unbekannten pts verloren, ursache und mögliche lösung?

27

Ich habe versucht, erneut eine Verbindung zu einer lang laufenden tmux-Sitzung herzustellen, um eine Python-Webanwendung zu überprüfen. tmux attachBehauptet jedoch , dass es keine laufende Sitzung gibt und pszeigt einen tmuxProzess (erste Zeile), aber mit einem Fragezeichen anstelle der ptsNummer.

Was bedeutet das - ist diese tmux-Sitzung dauerhaft verloren gegangen und was könnte sie verursacht haben? Gibt es noch eine Möglichkeit, den aktuellen Status des Python-Prozesses anzuzeigen, der in der tmux-Sitzung erzeugt wurde und in der pts/19zweiten Zeile ausgeführt wird?

[mhermans@web314 ~]$ ps -ef | grep mhermans
mhermans 16709     1  0 Mar04 ?        00:26:32 tmux
mhermans  8526 16710  0 Mar04 pts/19   00:20:04 python2.7 webapp.py
root      9985  6671  0 10:18 ?        00:00:00 sshd: mhermans [priv]
mhermans 10028  9985  0 10:18 ?        00:00:00 sshd: mhermans@pts/16
mhermans 10030 10028  0 10:18 pts/16   00:00:00 -bash
mhermans 16247 10030  6 10:28 pts/16   00:00:00 ps -ef
mhermans 16276 10030  0 10:28 pts/16   00:00:00 grep mhermans
mhermans 16710 16709  0 Mar04 pts/19   00:00:00 -bash
mhermans 16777 16709  0 Mar04 pts/21   00:00:00 -bash
mhermans
quelle
Was tmux lszeigt?
Jasonwryan
"Verbindung zum Server konnte nicht hergestellt werden: Verbindung abgelehnt"
mhermans 16.06.12

Antworten:

40

Lösung mit freundlicher Genehmigung des Webfaction-Supports :

Da der Prozess noch lief, war das Problem ein gelöschter Socket, möglicherweise verursacht durch ein gelöschtes tmp-Verzeichnis.

Nach der tmuxKarte:

Wenn der Socket versehentlich entfernt wird, wird das SIGUSR1-Signal möglicherweise an den tmux-Server gesendet, um es neu zu erstellen.

Also das Signal senden und anhängen klappt:

killall -s SIGUSR1 tmux
tmux attach
mhermans
quelle
Ich benutze byobu, die tmuxals Backend verwendet wird, und dies hat bei mir funktioniert, nachdem ich versehentlich den Socket von gelöscht habe /tmp/tmux-<pid>. Vielen Dank!
Nicu Stiurca
7

Die terminale Abwesenheit ist ein Zeichen für eine getrennte Sitzung. Und alle Ihre tmuxSitzungsnamen können so gefunden werden:

ls $TMP/tmux-$(id -u) oder ls /var/run/tmux/tmux-$(id -u)

- Das ist irgendwie distro-abhängig. Fast distro-unabhängig (und eher hardcore) wäre:

lsof -n -p 16709 -a -U

Wo 16709ist die PID von tmux in Ihrem Eintrag.

Poige
quelle
id -ugibt 532und /tmp/tmux-532enthält eine einzelne Datei "default". Wie hilft mir das weiter?
Mhermans
Versuchen Sie es tmux -S /tmp/tmux-532/default at, aber der Standard-Socket-Name sollte in Ordnung sein tmux at. Was sagt lsof-version?
Poige
Der erste Befehl führt zu einer Antwort "keine Sitzungen". lsof -v Ausgabe .
Mhermans
lsofWie in meiner Antwort angegeben, Alter. :)
Poige
@mhermans, ich meinte lsof-Version meiner Antwort, wir brauchen keine Softwareversion. :)
Poige