Вопрос или проблема
Я работаю на удаленном хосте, и когда я ввожу tmux
, команда выполняется без ошибок, но стандартное окно tmux не открывается. Вместо этого, похоже, ничего не происходит. Поведение такое же, когда я запускаю tmux ls
. Однако недопустимые команды tmux, например, tmux -z
, приводят к ожидаемой ошибке, когда все работает нормально.
$ tmux -z
tmux: недопустимый параметр -- z
использование: tmux [-2CluvV] [-c shell-command] [-f file] [-L socket-name]
[-S socket-path] [command [flags]]
Я также заметил, что man tmux
работает так, как и ожидалось.
Проблема началась, когда я выполнил команду pkill -f tmux
на удаленном хосте, надеясь завершить все сеансы tmux, которые у меня работали. Возможно, полезная информация в том, что у меня нет прав root на хосте, а также на хосте есть несколько других пользователей, которые также используют tmux. Когда я запустил pkill -f tmux
, я получил отказ в разрешении на завершение ряда процессов, которые, как я предполагаю, работали в tmux. Как я могу решить эту проблему, чтобы tmux снова работал нормально?
Ответ или решение
Проблема с тем, что команда tmux
не отвечает и не открывает стандартное окно, может возникнуть по нескольким причинам. Рассмотрим возможные пути решения этой проблемы на удалённом хосте.
Проблема
Когда вы выполняете команду tmux
, она не выдаёт ошибок, однако стандартное окно не открывается, и команды такие как tmux ls
также не работают. При этом, если вы попробуете выполнить недопустимые команды, например tmux -z
, вы получите соответствующее сообщение об ошибке, что свидетельствует о том, что сам tmux
работает, но не запускает сессии.
Контекст
Ситуация ухудшилась после выполнения команды pkill -f tmux
, которая предназначена для завершения всех активных сеансов tmux. Судя по вашему описанию, вы не имели корневых прав, что могло привести к тому, что некоторые процессы не были завершены, возможно, это блокирует нормальную работу tmux
.
Возможные решения
-
Проверьте активные сессии: Используйте команду
tmux ls
, чтобы посмотреть, какие сессии активны, и нет ли конфликтующих процессов. Если команда не работает, попробуйте воспользоваться командойps aux | grep tmux
, чтобы отобразить все активные процессы tmux, которые могут помешать запуску новых сессий. -
Завершите зависшие процессы: Если найдены зависшие процессы, для их завершения вам может потребоваться использовать
kill
с указанием PID (идентификатора процесса). Учтите, что вы можете завершать только свои собственные процессы. Например,kill <PID>
. -
Исключите конфигурационные файлы: Возможно, конфигурация tmux нарушена. Попробуйте запустить tmux с параметром
-f /dev/null
, чтобы игнорировать конфигурации. Это делается следующим образом:tmux -f /dev/null
Если tmux запустится, то проблема в вашей конфигурации (обычно находится в файле
~/.tmux.conf
). -
Перезапустите вашу сессию SSH: Иногда проблемы с сетью могут вызвать зависание сеансов tmux. Закройте текущую сессию SSH и подключитесь снова, чтобы посмотреть, устранит ли это проблему.
-
Обратите внимание на права доступов: Убедитесь, что у вас есть достаточно прав для запуска tmux и взаимодействия с необходимыми процессами. Если на удалённом сервере несколько пользователей, возможно, стоит обратиться к администратору для проверки прав доступа или текущих сеансов tmux каждого пользователя.
Заключение
Проблема с tmux может быть вызвана несколькими факторами, включая зависшие процессы, неправильные конфигурации или ограничения прав доступа. Применение предложенных методов поможет вам диагностировать и устранить проблему. Если ни одно из решений не сработало, возможно, стоит рассмотреть возможность переустановки tmux, хотя это требует административного доступа к серверу.