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

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

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

я пытался sudo service screen-cleanup start безуспешно!

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

7 ответов

Решение

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

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

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

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

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

chmod 700 -R /tmp/tmux*

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

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

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

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

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

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

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

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

Попробуйте использовать эту команду systemd-tmpfiles --create. Он создает необходимые папки в /run, включая tmux.

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

sudo chmod 1777 /tmp

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

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

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

sudo chmod 777 /tmp
Другие вопросы по тегам