Bei Administratoren und Entwicklern sind Terminal-Multiplexer, auch als Terminal-Window-Manager bekannt, sehr beliebt. Das typische Anwendungsbeispiel ist die Arbeit auf einem entfernten System. Über eine SSH-Verbindung steht lediglich ein einzelnes Terminal mit einer Shell zur Verfügung. Möchte der IT-Verantwortliche jedoch unterschiedliche Aufgaben parallel auf diesem System ausführen, sind hierfür entweder zusätzliche SSH-Verbindungen notwendig oder ein Tool wie tmux oder tmate, wobei tmate lediglich ein Fork von tmux ist – dazu später mehr.
Mit beiden Tools kann der Administrator auf einem System eine Vielzahl von Pseudoterminals erzeugen, jedes dieser Terminals wird in einem eigenen Fenster dargestellt. Anders als screen arbeitet tmux mit einem Client-Server-Modell. Bei tmux gehören alle Terminals zu einer Session, für die ein tmux-Server verantwortlich ist. Der Zugriff auf diese Sessions erfolgt mit einem tmux-Client. Auch der Zugriff von mehreren Clients auf den gleichen Server und somit auf die Session, die dieser Server verwaltet, ist möglich. Die Kommunikation zwischen Server und Clients findet über eine Socketdatei im "/tmp"-Verzeichnis statt. Der Vorteil dabei ist, dass Sessions persistent sind und auch wenn ein tmux-Client eine Verbindung zu einem tmux-Server beendet oder verliert, die Terminals, die zu dieser Session gehören, weiterhin aktiv sind.
Dieser Umstand ist für viele Anwendungsfälle ungemein nützlich, wie zum Beispiel beim Ausführen eines langlaufenden Tasks auf einem entfernten System. Wird der Task außerhalb von tmux oder einem ähnlichen Tool gestartet, wird dieser beim Abbruch der Verbindung beendet. Läuft der Task jedoch in einem Terminal, das zu einer tmux-Session gehört, so kann der Administrator den Zugriff auf den Server trennen, ohne dass dies irgendwelche Auswirkungen auf den Task hat, der innerhalb des Terminals abläuft. Auch bei einem Abbruch der Verbindung lässt sich eine erneute
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.