La nouvelle session de Tmux revient: «impossible de créer un socket»

8

J'ai tué une byobusession accidentellement (kill -9 byobuSessionId), et maintenant quand j'essaye de démarrer une autre byobucommande échoue avec " Ca n't create socket".

Renvoie également tmux new-session: "impossible de créer une socket"

J'ai essayé sudo service screen-cleanup startsans succès!

Une idée comment puis-je le résoudre?

luilver
la source

Réponses:

7

Le problème se produit peut-être par un processus tmux mort si vous vérifiez la sortie pour la commande strace -f -e trace = file tmux .

Vous voyez le fichier socket créé par tmux, dans mon cas se trouve sur / tmp // tmux-1001 / default /

Vous supprimez simplement ce fichier et relancez la commande byobu .

Al3tz Morales
la source
5

Vérifiez les autorisations des /tmp/tmux*/répertoires. Ils doivent vous appartenir et ne doivent être accessibles à personne d'autre.

Modifiez donc l'autorisation comme suit:

chmod 700 -R /tmp/tmux*

Il est important que le répertoire socket vous appartienne et ne soit pas accessible à tous, ou que n'importe quel utilisateur puisse utiliser votre serveur tmux. Pendant un certain temps, tmux a ignoré la vérification du mode d'accès, cela a été corrigé dans 2.0.

Si votre système ne prend pas en charge la création de répertoires dans / tmp avec la propriété appropriée, vous devrez utiliser -S pour le pointer explicitement vers une socket. La vérification est importante et nous n'allons pas prendre en charge les systèmes qui n'ont pas de sémantique d'autorisation de fichier Unix.

Shubham Chaudhary
la source
0

L'autorisation de /tmppeut provoquer ce problème.
Vous pouvez vérifier si l'autorisation /tmpest - 1777, sinon faire ceci:

sudo chmod 1777 /tmp
Honghe.Wu
la source
1
/tmpdevrait avoir 4777 (il a besoin du drapeau + t). Sans cela, tout le monde pourra supprimer les fichiers et renommer les fichiers ou répertoires des autres ci-dessous /tmp. De plus, c'est une réponse de type magicien ("faites X, vous obtenez Y" - mais pas d'explication).
peterh
@peterh Merci de m'avoir rappelé l'autorisation.
Honghe.Wu
0

J'ai rencontré le même problème sur un serveur partagé, où je n'avais aucune autorisation spéciale en dehors de mon répertoire personnel. Il arrive que tmux essayait d'accéder au dossier ~ / tmp où créer son socket. Ce dossier n'était pas présent et donc l'erreur.

La solution sur mon cas était de créer le dossier ~ / tmp et tout a bien commencé.

vxp
la source
0

J'ai rencontré le même problème et voici ma solution:

  1. Créer un nouveau dossier: /tmp/$(id -u)
  2. Changer de propriétaire: chown -R $(id -nu):$(id -nu) /tmp/$(id -u)
  3. Modifier l'autorisation: chmod -R 700 /tmp/$(id -u)

Ça marche!

JsonBruce
la source
0

J'ai eu le même problème, mais c'est à cause d'un problème d'espace disque.

Prasad Bonthu
la source
0

sur mac, ces cmds ont fait l'affaire:

sudo rm -r '/tmp/tmux-'$(id -u)
sudo chmod -R 4777 /tmp/
Yordan Georgiev
la source
-1

En utilisant la commande, strace -f -e trace=file tmuxvous pouvez voir les fichiers appelés par tmux. Le problème est souvent causé par les autorisations sur le dossier / tmp. Sur une installation standard d'Ubuntu Server, les autorisations sont définies sur 777. Vous pouvez changer avec

sudo chmod 777 /tmp
Maurizio Aru
la source