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.
У меня была такая же проблема, но это из-за проблемы с дисковым пространством.
Я столкнулся с той же проблемой, и ниже мое решение:
- Создать новую папку:
/tmp/$(id -u)
- Сменить владельца:
chown -R $(id -nu):$(id -nu) /tmp/$(id -u)
- Изменить разрешение:
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