Jeśli użyję
tmux attach
Mogę dołączyć do uruchomionej sesji, ale jeśli sesja nie jest uruchomiona, pojawia się tylko błąd
no sessions
Jak mogę automatycznie rozpocząć nową sesję, jeśli nie jest uruchomiona? coś jak
tmux attach-or-create-new-session
Odpowiedzi:
Odpowiedź jest znacznie prostsza. Po prostu umieść to w swoim
~/.tmux.conf
pliku:Jeśli uruchomisz
tmux attach
i istnieje sesja, zostanie ona dołączona do tej sesji (niezależnie od tego, czy jest już dołączona, czy nie). Jeśli nie ma jeszcze sesji, utworzy ją dla Ciebie.źródło
tmux
zostanie wywołana bez argumentów, utworzy nową sesję, a następnie utworzy drugą sesję, gdy tylko osiągnie ten wiersz w twoim~/.tmux.conf
. Ten problem można zobaczyć, wykonująctmux ls
po utworzeniu pierwszej sesji. W praktyce po umieszczeniu tego w pliku nie można już dzwonićtmux
bez żadnych argumentówalias tmux="tmux attach"
aby zapobiec temu problemowitmux
.Jeśli nazywanie sesji jest w porządku, możesz łatwo wykonać
new-session
polecenie:gdzie
main
jest nazwa sesji, która zostanie dołączona lub utworzona w razie potrzeby.Od
man tmux
:Należy również pamiętać, że
-A
opcja została wprowadzona w wersji tmux1.8
od 26 marca 2013 r. W przypadku wcześniejszych wersji należy użyćtmux attach || tmux
.źródło
alias "tmux-attach-or-create-main-session=tmux new-session -A -s main"
. Dzięki za wskazówkę! Strona podręcznika: openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1tmux: unknown option -- A
Wydaje się, że jest to dostępne tylko w najnowszych wersjach.[ -z "$TMUX" ] && exec tmux new -As .
tego właśnie używam w swoim.bashrc
.Rozpocznie się nowa sesja, jeśli dołączenie spowoduje błąd:
Więc alias wykona zadanie:
źródło
tmux attach
natmux a
Rozważ dodanie następujących elementów do swojego
.bashrc
Możesz zobaczyć moje wykorzystanie tego w moim pliku zasobów ZSH na moim repozytorium github
źródło
Aby rozwinąć odpowiedź Wesleya Baugha (która była dla mnie sesjami podwójnego zagnieżdżania podczas używania w .bashrc przy logowaniu) i dodać trochę elastyczności, ponieważ często używam
sudo -s
na serwerach (które należycie ładowałyby mój .bashrc ponownie i podwójne gniazdo), oto co mam w moim .bashrc:To sprawdza sesję tmux i upewnia się, że nie jesteś superużytkownikiem przed utworzeniem nowej sesji lub dołączeniem do istniejącej o nazwie
main
.źródło
Drew Frank odpowiedział na to tutaj: https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
Oto skrypt, którego teraz używam (jednak wróciłem do ekranu z powodu innego problemu z tmux)
/somewhere/on/your/path/ttmux
lub jako funkcję powłoki:Te
-2
opcje sprawiają tmux zakładamy 256 kolorów wspornik terminala, więc te mogą nie być odpowiednie dla danej sytuacji.źródło
Jeśli używasz tego w pliku .shrc lub podobnym z
exec
polecamźródło
Poprawiłem trochę odpowiedź @SuperMagic. Kładę ten blok na górze mojego
.zshrc
źródło