zsh Absturz beim Starten in tmux mit `zsh-newuser-install: Startdateien existieren, Abbruch`

9

Jedes Mal , wenn ich versuche zu starten zshinnerhalb von tmuxihm wwith stürzt

zsh-newuser-install:  startup files exist, aborting

Es hat gestern Abend einwandfrei funktioniert und plötzlich funktioniert heute Morgen nichts mehr ...

Ich beginne tmux mit dieser Zeile als erste in .zshrc:

if [ "$TMUX" = "" ]; then tmux; fi

Vielen Dank!

Meine zshrcDatei: https://github.com/Richard87/oh-my-zsh/blob/master/templates/zshrc.zsh-template

BEARBEITEN

Es fing plötzlich wieder an zu arbeiten ... Ich weiß nicht, was sich geändert hat oder was falsch ist ... kratz das, es hat wieder aufgehört zu funktionieren

EDIT # 2

Auf demselben Computer funktioniert es für Root-Benutzer, aber nicht für meinen Hauptbenutzer (die .zshrc-Dateien sind genau gleich. Der einzige Unterschied besteht darin, dass mein eigener Benutzer eine benutzerdefinierte tmux-Konfigurationsdatei hat:

# set Zsh as your default Tmux shell
set-option -g default-shell /bin/zsh

# Tmux should be pretty, we need 256 color for that
set -g default-terminal "screen-256color"


# Tmux uses a 'control key', let's set it to 'Ctrl-a'
# Reason: 'Ctrl-a' is easier to reach than 'Ctrl-b'
set -g prefix C-a
unbind C-b

# command delay? We don't want that, make it short
set -sg escape-time 1

# Set the numbering of windows to go from 1 instead
# of 0 - silly programmers :|
set-option -g base-index 1
setw -g pane-base-index 1


# Allow us to reload our Tmux configuration while
# using Tmux
bind r source-file ~/.tmux.conf \; display "Reloaded!"

# Getting interesting now, we use the vertical and horizontal
# symbols to split the screen
bind | split-window -h
bind - split-window -v
Richard87
quelle
Hast du es geschafft, das zu lösen? Ich habe heute das gleiche Problem.
MondKin
Nein, noch nicht 😕
Richard87
Wie wäre es jetzt gus? Ich habe heute das gleiche Problem.
Piotr Wittchen
Hatten Sie dieses Problem gerade selbst, eine Lösung für Sie?
Parth Mehrotra
Entschuldigung, die einzige Lösung, die ich habe, ist das Deaktivieren von tmux oder zsh (ich schlauche tmux)
Richard87

Antworten:

8

Dies passiert mir, wenn ich nach dem Booten das Terminal in IntelliJ öffne, bevor ich ein eigenständiges Terminal öffne:

  • Wenn ich zuerst das Standalone-Terminal öffne, funktionieren sowohl das Standalone- als auch das IntelliJ-Terminal gut.
  • Wenn ich zuerst das Terminal von IntelliJ öffne, wird sowohl auf dem Standalone-Terminal als auch auf dem IntelliJ-Terminal die folgende Meldung nicht angezeigt : zsh-newuser-install: startup files exist, aborting.

Die einzige Problemumgehung, die ich gefunden habe, ist:

  1. Schließen Sie alle Terminals und öffnen Sie ein eigenständiges Terminal. Die Meldung sollte nicht angezeigt werden. Öffnen Sie dann das IntelliJ-Terminal , während dieses geöffnet ist , und das Problem tritt nicht mehr auf.
  2. In einigen Fällen hat das nicht funktioniert, weil ich zuerst das eigenständige Terminal geöffnet habe. In diesem Fall mache ich, was @ rghamilton3 vorschlägt: tmux kill-serverund mache dann wieder # 1.
MondKin
quelle
Für Intellij-Benutzer, die auf das oben beschriebene Problem stoßen, ist hier die Lösung: stackoverflow.com/a/46696447/559119
So
Ja, das funktioniert, und alles begann, weil ich versucht habe, ein Terminal-Plugin in sublime zu verwenden. Das Schließen aller offenen Terminals und das Wiedereröffnen haben alles behoben
smac89
5

Ich weiß, dass dies alt ist, aber ich habe neuere Kommentare dazu gesehen und mir ist das gerade passiert. Ich habe den Server gerade durch Ausführen getötet tmux kill-serverund überraschenderweise das Problem für mich behoben. YMMV natürlich, aber hoffentlich hilft es jemand anderem.

rghamilton3
quelle
1

Zunächst wird die zsh-newuser zu installierende Funktion sollte nur dann , wenn ausgeführt werden:

1) Der Benutzer hat keine persönlichen zsh-Startdateien (wie .zshrc)

2) Wenn die folgenden Zeilen in Ihrer .zshrc-Datei erscheinen:

autoload -Uz zsh-newuser-install
zsh-newuser-install -f

3) Wenn dieselben Befehle manuell ausgeführt werden.

Ich würde Ihre .zshrc-Datei für alle Fälle überprüfen. Hoffentlich gibt Ihnen dies einen Ort, an dem Sie anfangen können zu suchen.

Persönlich würde ich den Befehl tmux nicht in die erste Zeile der .zshrc-Datei setzen, aber das ist meine persönliche Meinung. Ich glaube, die Verwendung der TMUXVariablen ist nicht die beste Wahl, um festzustellen, ob tmux bereits ausgeführt wird. Sie müssten eine Shell starten, die in einem tmux-Fenster / Bereich ausgeführt wird, damit die Variable TMUXfestgelegt wird. Die Ergebnisse von tmux lswären meiner Meinung nach eine bessere Wahl.

Var=("${(f)$(tmux ls)}")
[ ${#Var} -eq 0 ] && tmux

Da ich Ihren Anwendungsfall nicht kenne, können Sie diese Methode nicht wählen.

Friartek
quelle
Dies löst mein Problem nicht, da meine zshrc-Datei keine Zeilen wie Ihre enthält: /
Richard87