GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Bildschirmbefehl:Prozesse trotz unterbrochener Verbindung weiterlaufen lassen

Ich denke, Sie alle kennen das:Sie sind mit SSH mit Ihrem Server verbunden und gerade dabei, Software zu kompilieren (z. B. einen neuen Kernel) oder eine andere Aufgabe zu erledigen, die viel Zeit in Anspruch nimmt, und plötzlich wird Ihre Verbindung aus irgendeinem Grund unterbrochen, und Sie verlieren Ihre unvollendete Arbeit. Das kann sehr ärgerlich sein, aber glücklicherweise gibt es ein kleines Dienstprogramm namens screen, mit dem Sie eine frühere Sitzung wieder anhängen können, damit Sie Ihre Aufgabe beenden können. Dieses kurze Tutorial zeigt, wie Sie den Bildschirm genau für diesen Zweck verwenden.

1 Installation des Bildschirmbefehls

Die Installation des Bildschirms ist sehr einfach. Führen Sie unter Debian Folgendes aus:

apt-get install screen

Verwenden Sie für Ubuntu den Befehl mit sudo:

sudo apt-get install screen

Und für Fedora, CentOS, SuSE und Mandriva gibt es auch Bildschirmpakete, die Sie mit yum/yast/urpmi/...

installieren können

Fedora und CentOS

yum install screen

2 Bildschirmbefehl verwenden

Mit screen können Sie eine oder mehrere Sitzungen in Ihrem aktuellen SSH-Terminal erstellen. Einfach laufen

screen

um es zu starten. Dies erstellt eine Bildschirmsitzung oder ein Fenster (obwohl Sie es nicht als solches sehen) in Ihrem aktuellen SSH-Terminal:

Drücken Sie die Leertaste oder die Eingabetaste, um zur Eingabeaufforderung zu gelangen:

Sieht aus wie ein normales SSH-Terminal, nicht wahr?

Jetzt werde ich die wichtigsten Bildschirmbefehle beschreiben, die Sie zur Steuerung des Bildschirms benötigen. Diese Befehle beginnen mit STRG a, um sie von normalen Shell-Befehlen zu unterscheiden.

  • Strg a c - Erstellt eine neue Bildschirmsitzung, sodass Sie mehr als eine Bildschirmsitzung gleichzeitig verwenden können.
  • Strg a n - Wechselt zum n ext screen session (wenn Sie mehr als eine verwenden).
  • Strg a p - Wechselt zum p vorherige Bildschirmsitzung (wenn Sie mehr als eine verwenden).
  • Strg a d - Trennt eine Bildschirmsitzung (ohne die darin enthaltenen Prozesse zu beenden - sie werden fortgesetzt).

Um eine Bildschirmsitzung zu schließen, in der alle Aufgaben abgeschlossen sind, können Sie

eingeben
exit

Jetzt spielen wir ein bisschen damit herum. In unserem Bildschirmfenster führen wir den Befehl

aus
top

Das sollte so aussehen:

Lassen Sie uns nun eine weitere Bildschirmsitzung erstellen, indem Sie

eingeben
Ctrl a c

Eine neue Sitzung mit leerem Bildschirm wird geöffnet, und dort laufen wir

tail -f /var/log/mail.log

um einen fortlaufenden Blick auf unser Mail-Log zu werfen:

Jetzt können Sie Ihre Sitzungen mit zwei Bildschirmen durchsuchen, indem Sie

ausführen
Ctrl a n

oder

Ctrl a p

Um eine Bildschirmsitzung zu trennen und zu Ihrem normalen SSH-Terminal zurückzukehren, geben Sie

ein
Ctrl a d

Zurück auf Ihrem normalen SSH-Terminal können Sie

ausführen
screen -ls

So erhalten Sie eine Liste Ihrer aktuellen Bildschirmsitzungen:

There are screens on:
        2477.pts-0.server1      (Detached)
        2522.pts-0.server1      (Detached)
2 Sockets in /var/run/screen/S-root.

Um sich wieder mit einer dieser Sitzungen zu verbinden, führen Sie

aus
screen -r 2477.pts-0.server1

wobei 2477.pts-0.server1 der Name einer der Sitzungen aus der Ausgabe von screen -ls ist.

Um eine Bildschirmsitzung zu verlassen und zu beenden, beenden Sie alle aktuellen Aufgaben darin (top kann durch Eingabe von q beendet werden, tail -f /var/log/mail.log kann durch Eingabe von STRG c beendet werden) und geben Sie dann

ein
exit

Sie greifen dann auf eine andere Bildschirmsitzung zurück (wenn Sie mehr als eine verwenden) oder auf das normale SSH-Terminal, wenn keine Bildschirmsitzungen mehr offen sind.

Wenn Sie mehr über den Bildschirm erfahren möchten, führen Sie

aus
man screen

3 Meine Verbindung wurde unterbrochen – was kann ich tun?

Nehmen wir nun an, Sie kompilieren einen Kernel in einer Bildschirmsitzung, was normalerweise sehr lange dauert, und plötzlich bricht Ihre Verbindung zusammen. Dank screen geht Ihre Arbeit nicht verloren. Sobald Ihre Verbindung wiederhergestellt ist, melden Sie sich erneut mit SSH bei Ihrem System an und führen Sie

aus
screen -ls

wie in Kapitel 2 gezeigt. Wählen Sie aus den Ergebnissen eine Sitzung aus (z. B. 2477.pts-0.server1) und hängen Sie sie erneut an:

screen -r 2477.pts-0.server1

Wenn Sie die richtige Sitzung ausgewählt haben, sollte Ihr Kernel immer noch kompilieren (falls er in der Zwischenzeit nicht beendet wurde), sodass Sie Ihre Arbeit fortsetzen können.

  • Bildschirm:http://www.gnu.org/software/screen

Linux
  1. So beenden Sie laufende Prozesse in Linux

  2. Linux-ps-Befehl

  3. So verwenden Sie den Befehl „screen“ unter Linux

  4. Wie stoppe ich einen Bildschirmprozess unter Linux?

  5. Fortsetzen des Befehls, der in einer unterbrochenen SSH-Sitzung ausgeführt wird

Pgrep-Befehl unter Linux

Linux-PS-Befehl mit Beispielen

Führen Sie Hintergrundprozesse in Linux mit dem Screen-Befehl aus

Bildschirmbefehl unter Linux erklärt

Linux-PS-Befehl – ​​20 Beispiele aus dem wirklichen Leben

fuser Linux-Befehl mit Beispielen