Tmux new-session kehrt zurück: "Socket kann nicht erstellt werden"


8

Ich habe eine byobuSitzung versehentlich beendet (kill -9 byobuSessionId), und jetzt, wenn ich versuche, einen anderen byobuBefehl zu starten, schlägt "Socket kann nicht erstellt werden" fehl.

Gibt auch tmux new-sessionzurück: "Socket kann nicht erstellt werden"

Ich habe es sudo service screen-cleanup startohne Erfolg versucht !

Irgendeine Idee, wie ich es lösen kann?

Antworten:


7

Das Problem tritt möglicherweise durch einen toten tmux-Prozess auf, wenn Sie die Ausgabe auf den Befehl strace -f -e trace = file tmux überprüfen .

Sie sehen eine von tmux erstellte Socket-Datei, in meinem Fall unter / tmp // tmux-1001 / default /

Sie löschen einfach diese Datei und führen den Befehl byobu erneut aus .


5

Überprüfen Sie die Berechtigungen der /tmp/tmux*/Verzeichnisse. Sie sollten Ihnen gehören und niemandem zugänglich sein.

Ändern Sie die Berechtigung wie folgt:

chmod 700 -R /tmp/tmux*

Es ist wichtig, dass das Socket-Verzeichnis Ihnen gehört und nicht jedem zugänglich ist. Andernfalls kann jeder Benutzer Ihren tmux-Server verwenden. Für eine Weile hat tmux die Zugriffsmodusprüfung fälschlicherweise übersprungen. Dies wurde in 2.0 behoben.

Wenn Ihr System das Erstellen von Verzeichnissen in / tmp mit dem richtigen Besitz nicht unterstützt, müssen Sie -S verwenden, um es explizit auf einen Socket zu verweisen. Die Überprüfung ist wichtig und wir werden keine Systeme unterstützen, die keine Unix-Dateiberechtigungssemantik haben.


0

Die Erlaubnis von /tmpkann dieses Problem verursachen.
Sie können überprüfen, ob die Berechtigung von /tmplautet 1777, wenn nicht:

sudo chmod 1777 /tmp

1
/tmpsollte 4777 haben (es braucht das + t Flag). Ohne sie kann jeder die Dateien löschen und die Dateien oder Verzeichnisse der anderen unten umbenennen /tmp. Außerdem ist es eine magierähnliche Antwort ("mach X, du bekommst Y" - aber keine Erklärung).
Peterh - Wiedereinsetzung Monica

@ Peterh Danke, dass du mich an die Erlaubnis erinnert hast.
Honghe.Wu

0

Ich bin auf einem gemeinsam genutzten Server auf dasselbe Problem gestoßen, auf dem ich außerhalb meines Home-Verzeichnisses keine besonderen Berechtigungen hatte. Es kommt vor, dass tmux versucht hat, auf den Ordner ~ / tmp zuzugreifen, in dem der Socket erstellt werden soll. Dieser Ordner war nicht vorhanden und somit der Fehler.

Die Lösung für meinen Fall bestand darin, den Ordner ~ / tmp zu erstellen, und alles begann einwandfrei zu funktionieren.


0

Ich bin auf dasselbe Problem gestoßen und unten ist meine Lösung:

  1. Einen neuen Ordner erstellen: /tmp/$(id -u)
  2. Besitzer wechseln: chown -R $(id -nu):$(id -nu) /tmp/$(id -u)
  3. Berechtigung ändern: chmod -R 700 /tmp/$(id -u)

Es klappt!



0

Auf dem Mac haben diese Cmds den Trick gemacht:

sudo rm -r '/tmp/tmux-'$(id -u)
sudo chmod -R 4777 /tmp/

-1

Mit dem Befehl können strace -f -e trace=file tmuxSie sehen, welche Dateien tmux aufgerufen hat. Das Problem wird häufig durch Berechtigungen für den Ordner / tmp verursacht. Bei einer Standardinstallation von Ubuntu Server sind die Berechtigungen auf 777 festgelegt. Sie können mit ändern

sudo chmod 777 /tmp
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.