it-swarm-eu.dev

Wie kann ich mehrere Terminalsitzungen über eine einzige SSH-Verbindung durchführen?

Ich habe eine Ubuntu-Server-Edition, auf der SSH ausgeführt wird, um verschiedene Aufgaben auszuführen. Was ich möchte, ist die Möglichkeit, mit SSH auf meinem Server eine Serveranwendung zu starten und dann zu einer anderen "virtuellen" Sitzung (mit derselben SSH-Instanz) zu wechseln und Client-Aufrufe für den Dienst auszuführen. Wenn ich den Dienst starte, handelt es sich um einen blockierenden Aufruf, sodass ich keine Client-Aufrufe ausführen kann, ohne eine andere SSH-Sitzung zu starten.

Ich hatte gehofft, dass es einen etwas schlankeren Weg gibt, so wie es die Benutzeroberfläche mit virtuellen Desktops tut.

21

Was Sie verwenden möchten, ist screen oder noch besser ein benutzerfreundlicher Wrapper um screen namens byobu.

Auf dem Bildschirm können Sie mehrere virtuelle Terminalsitzungen in derselben SSH-Sitzung ausführen. Ein Tutorial und Hilfeseiten sind verfügbar.

byob ist ein Wrapper, der es ermöglicht, neue Bildschirme mit einer einfachen Funktionstaste anstelle einer Tastenkombination von Strg-A zu öffnen. Außerdem wird eine Statuszeile mit allen offenen virtuellen Terminals angezeigt, die benannt werden können.

Ein weiteres nettes Feature ist die Tatsache, dass Ihr gesamter Bildschirm eingeschaltet bleiben kann, während Ihre SSH-Verbindung getrennt ist. Du verbindest dich einfach wieder per ssh und rufst byobu an und alles ist wie vorher.

Endlich ein paar Screenshots von byobu.

24
txwikinger

GNU-Bildschirm ist die Antwort, nach der Sie gesucht haben - aber es ist Vi sehr ähnlich. Sie haben eine Menge Erfahrung mit Befehlen zum Einrichten einer erfolgreichen Bildschirmumgebung. Hier sind einige Dinge, die Ihnen den Einstieg erleichtern sollen. Zunächst möchten Sie diesen .screenrchttp://paste.ubuntu.com/473764/ auf dem Remote-Server in Ihrem Benutzerordner speichern. Nächster Installationsbildschirm auf dem Remote-Computer (Sudo apt-get install screen) Als nächstes möchten Sie ihn starten. Hier sind einige Befehle zum "Starten des Bildschirms":

screen - Das ist ziemlich einfach. Es wird eine neue Bildschirmsitzung gestartet. screen -ls - Alle aktiven Bildschirmsitzungen auflisten. Ja, Sie können mehrere Terminals in mehreren Bildschirmen haben. SO SWEET.

Probe

screen -ls
There is a screen on:
    16467.pts-0.ubuntu  (08/05/2010 07:47:53 PM)    (Detached)
1 Socket in /var/run/screen/S-marco.

screen -x <pid> - Hiermit wird eine getrennte Bildschirmsitzung fortgesetzt, IE: screen -x 16467

Sobald Sie sich in einem Bildschirm befinden (und meine Beispieldatei .screenrc verwendet haben), sehen Sie unten Folgendes:

(LOAD) 0$* bash

Welches ist die Serverlast und eine Liste aller offenen "Terminal-Registerkarten". Derzeit nur ein Fenster. Geben Sie etwas ein und drücken Sie dann diese Tastenkombination: Ctrl + A loslassen und dann c drücken. Ctrl + A ist die Escape-Sequenz. Alle Befehle werden mit dieser Kombination gestartet. c erstellt eine neue Registerkarte. Sie werden feststellen, dass in der Fußzeile (LOAD) 0-$ bash 1$* bash angezeigt wird, dass ein weiterer Tab geöffnet ist und der aktive Tab die Nummer 1 hat. Sie können maximal 60 Tabs pro Bildschirmsitzung öffnen.

Wenn Sie den Bildschirm beenden möchten, ihn aber weiterhin ausführen möchten, verwenden Sie Ctrl + A und dann d, wodurch Ihre Sitzung getrennt wird. Schließlich können Sie Tabs schließen, indem Sie Ctrl + A und dann k verwenden, wodurch dieser Tab abgebrochen wird (falls er blockiert). In der Regel können Sie jedoch exit eingeben, als ob Sie sich in einem Terminal befänden schließe diesen Reiter.

Zuletzt können Sie zum Auflisten aller geöffneten Fenster Ctrl + A und dann " eingeben.

Es gibt eine ganze Reihe von Optionen für den Bildschirm, die Sie für weitere Informationen über die Man-Datei ziehen sollten. Es gibt einige Nachteile. Sie können Ihre Bildlaufleiste in Screen nicht verwenden. Sie müssen Puffersteuerelemente zum Zurücksetzen verwenden. Die oben genannten Schritte reichen jedoch aus, um zu überprüfen, ob dies eine praktikable Option ist. Dies ist eine großartige Sache und etwas, mit dem ich mich als Systemadministrator schon oft befasst habe - Netzwerkkonnektivität. Wenn Ihr Netzwerk ausfällt, gehen Ihre Vorgänge nicht verloren! Da Bildschirm läuft auf dem Server. Sie müssen sich einfach wieder über SSH anmelden und dann screen -ls und screen -x in Ihre Sitzung zurück.

5
Marco Ceppi

Wenn Sie Ubuntu Server Edition verwenden, ist byobu definitiv die beste Option. Das Ubuntu Server-Handbuch enthält eine nützliche Dokumentation .

Es ist im Allgemeinen einfacher zu erlernen und zu verwenden als screen und wird standardmäßig installiert.

1
jbowtie

Ich verwende Emacs, daher erschwert die Standardkonfiguration des Bildschirms mein Leben.

$ cat /home/cjac/.screenrc 

flucht ^ \

Versuch das!

0
cjac