Ich würde gerne wissen, ob es eine Möglichkeit gibt, sich so tmux
zu verhalten, wie screen -D -R
ich sagen könnte, den Befehl als Standardbefehl in Putty zu haben.
Diese screen
Schalter würden das Trennen einer vorhandenen Bildschirmsitzung für meinen Benutzer erzwingen (selbst wenn diese noch aktiv und an einer anderen Stelle angemeldet war) und sie erneut mit der aktuellen Sitzung verbinden. Für den Fall, dass keine Bildschirmsitzung vorhanden ist, wird eine neue erstellt.
Ich mag tmux und sehe klare Vorteile über dem Bildschirm, aber die Existenz dieser Funktion würde den Deal wirklich besiegeln.
tmux attach
scheint keine neue Sitzung zu erstellen, wenn es keine gibt.
Die Manpage für tmux sagt:
Wenn kein Server gestartet ist, versucht attach-session (attach), ihn zu starten. Dies schlägt fehl, es sei denn, Sitzungen werden in der Konfigurationsdatei erstellt.
Was bedeutet der fett gedruckte Abschnitt? (Ich kann kein Beispiel für das Erstellen einer Sitzung in der conf-Datei finden.)
quelle
tmux
Befehlen , die nacheinander ausgeführt werden , wenn der Server zum ersten Mal gestartet wird. “ - Sie tatsächlich haben könntenattach
odernew-session
als Linie in Ihrem.tmux.conf
.new-session
wäre sowieso passiert ...Antworten:
Ja:
$ tmux attach -d || tmux new
-d
ist notwendig, um sich wiescreen -D
jeder andere zu verhalten .Per ssh verbinden, dann anhängen oder erstellen könnte so etwas sein:
quelle
new-session
lehne ich in der Konfigurationsdatei ab, falls Sie es bearbeiten und während einer tmux-Sitzung neu laden möchten.tmux attach
Verwenden Sie die Optionnew-session
in der tmux-Konfigurationsdatei , um eine neue Sitzung zu erstellen, wenn es keine gibt . Erstellen Sie die Datei,~/.tmux.conf
falls sie nicht vorhanden ist, und fügen Sie sie hinzudazu. Auch ich alias
tmux
antmux attach
:)quelle
new-session
in~/.tmux.conf
denn wenn ich die Konfiguration mit dem Befehl neu zu ladensource-file ~/.tmux.conf
(siehe diese ) eine neue Sitzung gestartet wird. Ja, ich kann es töten und dann an das vorherige anhängen, aber das ist ein bisschen nervig.Sie können dies mit einer Shell-Funktion emulieren. Dies sollte für jede POSIX-kompatible Shell funktionieren:
Wenn Sie es nun wie folgt starten
tmux -z
, sollte es die gewünschten Aktionen ausführen.quelle
dieses funktioniert ein bisschen besser für mich:
quelle
Ich finde, das funktioniert am besten für mich auf .bashrc
quelle
Wenn Sie dies in einer .shrc-Datei oder ähnlichem verwenden,
exec
würde ich empfehlenquelle