tmux wychodzi z [wyjście] na Mac OS X

88

Właśnie zainstalowałem Tmux (terminal multiplekser) z Homebrew. Kiedy próbuję go uruchomić, zawsze wychodzi z [exited]Nic się nie pojawia.

Podczas próby uruchomienia tmux list-sessionpojawia się błąd:

nie udało się połączyć z serwerem: połączenie odrzucone

Próbowałem biec tmux start-server, ale znowu nic się nie dzieje.

Co mogę zrobić?

Stevens
źródło
2
zacznij używać opcji -v, aby zwiększyć gadatliwość
Florenz Kley
3
Sprawdź swoje default-commandi default-shellopcje. Jeśli tmux ma problem z uruchomieniem domyślnego polecenia (lub powłoki), zareaguje tak, jak opisano. W celu przeprowadzenia dalszego dochodzenia możesz zrobić coś takiego, jak tmux new /bin/zshjawne rozpoczęcie od (np.) /bin/zshZamiast polegania na default-commandlub default-shell.
Chris Johnsen,
3
tmux new /bin/zshpracował dla mnie. Dziękuję Ci.
Stevens,
Eee, moja sugestia miała być etapem diagnostycznym, a nie ostatecznym obejściem. Prawdopodobnie jest coś nie tak z twoim otoczeniem default-shelllub default-commandotoczeniem.
Chris Johnsen
Niedawno odkryłem (po raz pierwszy), że jeśli 1) .tmux.conf istnieje, ale ma błędy składniowe lub 2) .tmux.conf jest dowiązaniem symbolicznym, które prowadzi do niczego, tmux się nie otworzy. Warto najpierw spróbować z domyślnym plikiem konfiguracyjnym mv $HOME/.tmux.conf $HOME/.tmux.conf.backupi najpierw sprawdzić, czy tmux się uruchomi. @ChrisJohnsen ma rację, twoje rozwiązanie oznacza po prostu, że wystąpił błąd.
Scicalculator

Odpowiedzi:

178

Miałem ten sam problem. Było to spowodowane tym, że set-option -g default-command "reattach-to-user-namespace -l zsh"mam w sobie .tmux.confbez konieczności instalowania przestrzeni nazw dla użytkownika .

Poprawka polegała na zainstalowaniu „przestrzeni przyłączeniowej do przestrzeni nazw użytkownika” za pomocą Homebrew ( brew install reattach-to-user-namespace)

robenkleen
źródło
2
wielkie dzięki! Właśnie tego brakowało w moim systemie, aby działało!
DannyRe
1
+1Wielkie dzięki! Miałem dokładnie ten sam problem. Czy znasz sposób na ustawienie opcji warunkowo, aby nie zawiodła w systemie, który nie został reattach-to-user-namespacezainstalowany?
Patrick Oscity,
2
@padde Zobacz to rozwiązanie .
jrhorn424,
Masz pomysł, jak to osiągnąć w Ubuntu? Próbowałem znaleźć sposób na pobranie, reattach-to-user-namespaceale moje wysiłki były daremne.
DaMainBoss,
@DaMainBoss reattach-to-user-namespacejest tylko dla Tmux. Jeśli jesteś na Ubuntu, po prostu skomentuj ten wiersz z pliku
.tmux.conf
6

Upewnij się, że opcja powłoki domyślnej zawiera tylko ścieżkę wykonywalną i nie zawiera opcji.

W /etc/tmux.conflub~/.tmux.conf

set-option -g default-shell "/ bin / bash"
ustaw opcję -g domyślna-komenda „bash -l”
ustaw opcję -g ścieżka domyślna $ HOME
ustaw opcję -g domyślny terminal „screen-256color”
AskApache
źródło
Ta odpowiedź doprowadziła mnie do prawdziwego powodu, właśnie odinstalowałem tcsh, a moja domyślna powłoka i domyślna komenda były nadal ustawione. Zmiana go na / bin / ksh lub domyślnie zainstalowaną powłokę do wyboru, naprawiła to dla mnie.
Jason Robinson
0

Jeśli używasz skryptu do zawijania reattach-to-user-namespace, jak opisano w jimeh , nie zapomnij, aby skrypt był wykonywalny chmod +x ~/bin/login-shell.

jrhorn424
źródło