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?

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 .


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.


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

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é.


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!


0

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


0

sur mac, ces cmds ont fait l'affaire:

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

-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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.