Kullanırsam
tmux attach
Çalışan bir oturuma ekleyebilirim ancak çalışan bir oturum yoksa, yalnızca hatayı alıyorum
no sessions
Çalışmıyorsa yeni bir oturumu otomatik olarak nasıl başlatabilirim? gibi bir şey
tmux attach-or-create-new-session
Kullanırsam
tmux attach
Çalışan bir oturuma ekleyebilirim ancak çalışan bir oturum yoksa, yalnızca hatayı alıyorum
no sessions
Çalışmıyorsa yeni bir oturumu otomatik olarak nasıl başlatabilirim? gibi bir şey
tmux attach-or-create-new-session
Yanıtlar:
Cevap çok daha basit. Sadece bunu ~/.tmux.confdosyanıza ekleyin :
# if run as "tmux attach", create a session if one does not already exist
new-session -n $HOST
Eğer koşarsanız tmux attachve bir oturum varsa, o oturuma eklenir (zaten ekli olsun veya olmasın). Yoksa değil bir oturum zaten o zaman sizin için bir tane yaratacaktır.
tmuxargümanlar olmadan çağrılırsa, yeni bir oturum oluşturacak ve daha sonra sizin için bu satıra ulaştıktan sonra ikinci bir oturum oluşturacaktır ~/.tmux.conf. İlk oturumu tmux lsoluşturduktan sonra çalıştırarak bu sorunu görebilirsiniz . Uygulamada, bunu dosyanıza koyduktan sonra, artık hiçbir argüman olmadan tmux
alias tmux="tmux attach"bu sorunu önlemek için bir takma ad eklemek zorunda
tmux.
Oturumunuzun isimlendirilmesi tamamsa, new-sessionkomutla yapmak kolaydır :
tmux new-session -A -s main
mainGerekirse eklenecek veya oluşturulacak oturumun adı nerede ?
Kimden man tmux:
-ABayrak yaparnew-sessiongibi davranmayaattach-sessioneğer oturum adı zaten var; bu durumda,-Dgibi davranır-diçinattach-session.
Lütfen, bu -Aseçeneğin 26.03.2013 tarihinden 1.8itibaren tmux sürümünde kullanıldığını ve önceki sürümlerde kullanıldığını unutmayın tmux attach || tmux.
alias "tmux-attach-or-create-main-session=tmux new-session -A -s main". Bahşiş için teşekkürler! Manuel sayfa: openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1
tmux: unknown option -- ABu sadece son sürümlerde mevcut görünmektedir.
[ -z "$TMUX" ] && exec tmux new -As .işte kullandığım şey bu .bashrc.
Eğer ek bir hata verirse bu yeni bir oturum başlatır:
tmux attach || tmux new
Yani bir takma ad işi yapacak:
tm="tmux attach || tmux new"
tmux attachiçintmux a
Şunlara aşağıdakileri eklemeyi düşünün: .bashrc
if [ -z "$TMUX" ]; then
base_session='my_session'
# Create a new session if it doesn't exist
tmux has-session -t $base_session || tmux new-session -d -s $base_session
# Are there any clients connected already?
client_cnt=$(tmux list-clients | wc -l)
if [ $client_cnt -ge 1 ]; then
session_name=$base_session"-"$client_cnt
tmux new-session -d -t $base_session -s $session_name
tmux -2 attach-session -t $session_name \; set-option destroy-unattached
else
tmux -2 attach-session -t $base_session
fi
fi
Bunu kullanımımı ZSH kaynak dosyamda github depomda görebilirsiniz.
Wesley Baugh'un yanıtını genişletmek (oturum açmalarda .bashrc'de kullanıldığında benim için çift yuvalama oturumları) ve sudo -ssunucularda sık sık kullandığımdan ( biraz .bashrc dosyasını tekrar yükleyeceğim) kullandığım için biraz esneklik eklemek için , işte burada .bashrc'imde ne var:
if [ -z "$TMUX" ] && [ ${UID} != 0 ]
then
tmux new-session -A -s main
fi
Bu, bir tmux oturumu denetler ve yeni bir oturum oluşturmadan veya adlandırılmış olan mevcut bir şeye eklemeden önce süper kullanıcı olmadığından emin olmanızı sağlar main.
Drew Frank bunu burada cevapladı: https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
İşte şimdi bunun için kullandığım komut dosyası (yine de, tmux ile ilgili başka bir sorun nedeniyle ekrana döndüm) /somewhere/on/your/path/ttmuxveya bir kabuk işlevi:
#!/bin/sh
# many thanks to Drew Frank: https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
(tmux ls | grep -vq attached && tmux -2 at) || tmux -2
-2Seçenekleri 256 renk terminali destek kabul tmux yapmak, böylece bu durumunuza uygun olmayabilir.
Bunu bir .shrc dosyası içinde kullanıyorsanız veya ile benzer bir şekilde execöneririm
if tmux ls
exec tmux attach
else
exec tmux
fi