Если я использую
tmux attach
Я могу присоединиться к запущенному сеансу, но если сеанс не запущен, я получаю только ошибку
no sessions
Как я могу автоматически начать новый сеанс, если он еще не запущен? что-то вроде
tmux attach-or-create-new-session
Ответы:
Ответ намного проще. Просто поместите это в свой
~/.tmux.conf
файл:Если вы запустили
tmux attach
сеанс, то он будет присоединен к этому сеансу (независимо от того, подключен он или нет). Если не сеанс уже тогда он будет создавать для вас.источник
tmux
он вызывается без аргументов, он создаст новый сеанс, а затем создаст второй сеанс, как только достигнет этой строки в вашем~/.tmux.conf
. Вы можете увидеть эту проблему, выполнивtmux ls
после создания первого сеанса. На практике, после того, как вы поместили это в свой файл, вы больше не можете звонитьtmux
без аргументовalias tmux="tmux attach"
чтобы предотвратить эту проблемуtmux
.Если имя вашей сессии в порядке, то это легко сделать с помощью
new-session
команды:где
main
имя сеанса, которое будет присоединено или создано при необходимости.От
man tmux
:Также обратите внимание, что
-A
опция введена в версии tmux1.8
с 26 марта 2013 года , для более ранних версий используйтеtmux attach || tmux
.источник
alias "tmux-attach-or-create-main-session=tmux new-session -A -s main"
. Спасибо за чаевые! Страница руководства: openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1tmux: unknown option -- A
Это только кажется, что доступно в последних версиях.[ -z "$TMUX" ] && exec tmux new -As .
это то, что я использую в моем.bashrc
.Это начнет новый сеанс, если attach выдает ошибку:
Таким образом, псевдоним сделает работу:
источник
tmux attach
наtmux a
Попробуйте добавить следующее к вашему
.bashrc
Вы можете увидеть мое использование этого в моем файле ресурсов ZSH в моем репозитории github
источник
Чтобы расширить ответ Уэсли Боуга (который для меня представлял собой сеансы двойного вложения при использовании в .bashrc при входе в систему) и добавить немного гибкости, поскольку я часто использую
sudo -s
на серверах (которые покорно загружают мой .bashrc снова и двойное гнездо), вот что у меня есть в моем .bashrc:Это проверяет сеанс tmux и гарантирует, что вы не являетесь суперпользователем, прежде чем создавать новый сеанс или присоединяться к существующему с именем
main
.источник
Дрю Франк ответил на это здесь: https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
Вот сценарий, который я сейчас использую для этого (хотя я переключился на экран из-за другой проблемы с tmux)
/somewhere/on/your/path/ttmux
или в качестве функции оболочки:Эти
-2
опции позволяют tmux предположить 256 цвет терминала поддержки, так что те , возможно , не подходит для вашей ситуации.источник
Если вы используете это в файле .shrc или аналогичном,
exec
я бы порекомендовалисточник
Я немного улучшил ответ @SuperMagic. Я положил этот блок наверху моего
.zshrc
источник