Tmux new-session возвращает: «не могу создать сокет»

8

Я byobuслучайно убил сеанс (kill -9 byobuSessionId), и теперь, когда я пытаюсь запустить, другая byobuкоманда завершается с ошибкой «не удается создать сокет».

Также tmux new-sessionвозвращает: «не могу создать сокет»

Я пытался sudo service screen-cleanup startбез успеха!

Любая идея, как я могу решить это?

luilver
источник

Ответы:

7

Возможно, проблема возникает из-за мертвого процесса tmux, если вы проверяете выходные данные для команды strace -f -e trace = file tmux .

Вы видите файл сокета, созданный tmux, в моем случае он находится в / tmp // tmux-1001 / default /

Вы просто удаляете этот файл и снова запускаете команду byobu .

Al3tz Моралес
источник
5

Проверьте разрешения /tmp/tmux*/каталогов. Они должны принадлежать вам и не доступны никому другому.

Так что измените разрешение как:

chmod 700 -R /tmp/tmux*

Важно, чтобы каталог сокетов принадлежал вам и был доступен не всем, или любой пользователь мог использовать ваш tmux-сервер. Некоторое время tmux неправильно пропускал проверку режима доступа, это было исправлено в 2.0.

Если ваша система не поддерживает создание каталогов в / tmp с правом владения, вам придется использовать -S, чтобы явно указать ее на сокет. Проверка важна, и мы не собираемся поддерживать системы, которые не имеют семантики разрешений файлов Unix.

Шубхам Чаудхари
источник
0

Разрешение /tmpможет вызвать эту проблему.
Вы можете проверить разрешения /tmpIS 1777, если не делать этого:

sudo chmod 1777 /tmp
Honghe.Wu
источник
1
/tmpдолжен иметь 4777 (ему нужен флаг + t). Без этого каждый сможет удалить файлы и переименовать файлы или каталоги других ниже /tmp. Кроме того, это ответ, подобный магу («делай X, получаешь Y» - но без объяснений).
Петер - Восстановить Монику
@peterh Спасибо, что напомнили мне за разрешение.
Honghe.Wu
0

Я столкнулся с той же проблемой на общем сервере, где у меня не было специальных разрешений за пределами моего домашнего каталога. Бывает, что tmux пытается получить доступ к папке ~ / tmp, где создается его сокет. Этой папки не было и, следовательно, ошибка.

Решением в моем случае было создание папки ~ / tmp, и все начало работать нормально.

VXP
источник
0

Я столкнулся с той же проблемой, и ниже мое решение:

  1. Создать новую папку: /tmp/$(id -u)
  2. Сменить владельца: chown -R $(id -nu):$(id -nu) /tmp/$(id -u)
  3. Изменить разрешение: chmod -R 700 /tmp/$(id -u)

Оно работает!

JsonBruce
источник
0

У меня была такая же проблема, но это из-за проблемы с дисковым пространством.

Прасад Бонту
источник
0

на Mac эти команды сделали свое дело:

sudo rm -r '/tmp/tmux-'$(id -u)
sudo chmod -R 4777 /tmp/
Йордан Георгиев
источник
-1

С помощью команды strace -f -e trace=file tmuxвы можете увидеть, какие файлы называются tmux. Проблема часто вызвана правами доступа к папке / tmp. При стандартной установке Ubuntu Server разрешения устанавливаются на 777. Вы можете изменить с помощью

sudo chmod 777 /tmp
Маурицио Ару
источник