tmux
Default‑Shell schnell auf /bin/bash
festlegen
Oft bleibt eine neue tmux
‑Session schwarz, wenn keine gültige Standard‑Shell definiert ist. Mit der folgenden Ein‑Zeiler‑ oder Schritt‑für‑Schritt‑Anleitung schreibst du den notwendigen Eintrag in ~/.tmux.conf
.
Ein‑Zeiler (sofort ausführen)
echo 'set-option -g default-shell /bin/bash' >> ~/.tmux.conf
echo 'set-option -g default-shell /bin/bash' >> ~/.tmux.conf
mkdir Manual
echo -e 'apt-get update\napt-get full-upgrade -y\n/sbin/reboot now' >> Manual/Update_and_reboot.sh
echo -e 'apt-get update\napt-get full-upgrade -y' >> Manual/Just_update.sh
Hinweis: /bin/bash
ist auf fast allen Linux‑Systemen vorhanden. Wer plattformunabhängig arbeiten möchte, setzt lieber /usr/bin/env bash
.
Schritt‑für‑Schritt‑Variante
- Datei öffnen:
nano ~/.tmux.conf
- Zeile hinzufügen – ganz egal, wo:
set-option -g default-shell /bin/bash
- Speichern & schließen:
Ctrl+O, Enter, Ctrl+X - tmux‑Konfiguration neu laden (ohne Neustart):
tmux source-file ~/.tmux.conf
tmux hängt im toten Netzlaufwerk – Notfall‑Cheatsheet
Wenn dein tmux
‑Fenster in einem Pfad steht, der auf einem abgestürzten NFS‑/CIFS‑Mount liegt, wirkt das Terminal wie eingefroren: jeder I/O‑Aufruf wartet ewig auf eine Antwort, die nie kommt. Diese Anleitung zeigt dir, wie du die blockierte Shell verlässt, die Pane reparierst – oder den kaputten Mount brutal löst – ohne deine ganze tmux‑Sitzung zu verlieren.
1 · Schnelle Hilfe direkt in tmux
Aktion | Tastenfolge (Prefix = Ctrl+b) | Ergebnis |
---|---|---|
Neues Window | Ctrl+b c | Frische Login‑Shell in $HOME oder / . |
Neue Pane (horizontal) | Ctrl+b " | Zweite Shell, unabhängig vom blockierten Verzeichnis. |
Hängende Pane killen | Ctrl+b x → y | Nur die kaputte Pane wird beendet. |
Pane neu starten | Ctrl+b : → respawn-pane -k |
Kills + sofortiger Neustart der Shell darin. |
Ganzes Window killen | Ctrl+b & → y | Alle Panes dieses Fensters schließen. |
Tipp: Meist reicht es, Ctrl+b c zu drücken, sich in der neuen Shell per pwd
den aktuellen Pfad anzeigen zu lassen und anschließend den defekten Mount zu lösen (→ Abschnitt 3).
2 · Festhängende Prozesse gezielt töten
# 1 · TTY der Pane herausfinden
who # Spalte "PTS" merken (z. B. pts/4)
# 2 · laufende Prozesse auf diesem TTY zeigen
ps -o pid,stat,cmd -t pts/4
# 3 · sanft beenden (SIGTERM), notfalls hart (SIGKILL)
kill <PID> # SIGTERM
kill -9 <PID> # SIGKILL
Sobald der blockierende Prozess endet, reagiert die Shell sofort wieder.
3 · Abgestürzten Netz‑Mount „faul“ abhängen
sudo umount -l -f /pfad/zum/netzlaufwerk
-l
(lazy) entfernt den Mount sofort aus dem Namensraum, selbst wenn noch offene Handles existieren.-f
(force) erzwingt das Umounten auch bei NFS‑Server‑Timeout.
Danach funktionieren alle Befehle wieder, die nicht nochmals auf dieses Verzeichnis zugreifen.
4 · Letzter Ausweg – komplette Session schließen
# innerhalb von tmux
Ctrl-b d # detach
# auf der Login-Shell
tmux kill-session -t <sessionname>
Das beendet alles in einem Rutsch. Nützlich, wenn mehrere Windows abhängig sind oder sich die Lage anders nicht bereinigen lässt.
5 · Dauerhafte Prävention
- Automount (systemd.automount / autofs) einsetzen, damit inaktive NFS/CIFS‑Mounts nach Timeout verschwinden.
- Shell‑Prompt optimieren: Entferne jede
$PWD
-Auflösung inPROMPT_COMMAND
, wenn du häufig in Netzpfaden arbeitest. - Watchdog‑Cronjob: Skript, das hängende Mounts erkennt und
umount -l -f
ausführt.
6 · „Neue tmux‑Session bleibt leer“ – Konfiguration fixen
Manche Distributionen starten tmux
ohne explizite Login‑Shell. Ist die voreingestellte Shell nicht ausführbar (z. B. durch einen defekten Symlink oder ein fehlendes Home‑Verzeichnis), erscheint nur ein schwarzer Bildschirm. Setze deshalb eine valide Standard‑Shell in deiner ~/.tmux.conf
:
nano ~/.tmux.conf
# ------------------------------
# Saubere Login‑Shell erzwingen:
set-option -g default-shell /usr/bin/env bash
# Optional: gleich als Login‑Shell starten
set-option -g default-command "bash -l"
# ------------------------------
Verbesserung gegenüber deinem ursprünglichen Trick: /usr/bin/env bash
findet bash
auch dann, wenn sie nicht unter /bin
liegt, und funktioniert daher auf nahezu allen Linux‑Varianten (inkl. macOS / BSD). Mit default-command "bash -l"
bekommst du zusätzlich ein vollwertiges Login‑Environment (u. a. /etc/profile
wird geladen).
7 · Kurzanleitung für die Hosentasche
# Pane hängt im toten Mount?
Ctrl-b c # neues Window
sudo umount -l -f … # Mount loswerden
Ctrl-b x # alte Pane killen
Fertig! Deine tmux‑Sitzung lebt weiter, und du sparst dir den Logout.
No Comments