Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie verwende ich Screen zum Verwalten von Remote-Sitzungen?

Wie verwende ich Screen zum Verwalten von Remote-Sitzungen?

青灯夜游
青灯夜游nach vorne
2019-03-28 14:20:082254Durchsuche

Der Inhalt dieses Artikels besteht darin, die Methode zur Verwendung von Screen zur Verwaltung von Remote-Sitzungen vorzustellen. Ich hoffe, dass er für Freunde hilfreich ist.

Bei der lokalen Entwicklung muss ich oft Remote-Verbindungen verwenden, um eine Verbindung zu Linux-Servern herzustellen. Zu Beginn habe ich mehrere SSH-Fenster geöffnet, als ich mehrere Remotes hatte. Diese Methode ist sehr primitiv und direkt, aber sie leidet immer Die Eingabe eines Passworts reicht aus. Selbst wenn Sie SSH verwenden, um sich ohne Passwort anzumelden, werden Sie das Gefühl haben, dass die Eingabe von SSH-Befehlen überhaupt nicht schnell geht. Wenn Sie außerdem zu viele Fenster öffnen, wird es verwirrend und schwierig zu verwalten. In diesem Fall gibt es viele Tools unter Linux. Lassen Sie uns heute etwas über screen Tools lernen.

Bei der Einführung des screen-Tools wollen wir zunächst besprechen, warum wir nach dem Herstellen einer Verbindung zum Server beim Ausführen einer Langzeitaufgabe das Remote-Verbindungsfenster schließen und die Aufgabe abgebrochen wird.

Der Übeltäter: SIGUP-Signal

Unter Linux/Unix gibt es folgende Konzepte:

  • Prozessgruppe: Eine Sammlung von einem oder mehreren Prozessen. Jede Prozessgruppe hat eine eindeutige Prozessgruppen-ID.

  • Sitzung: Eine oder mehrere Prozessgruppen haben einen eindeutigen Sitzungsleiter , und die Sitzungs-ID ist die Leiterprozess-ID;

  • Die Sitzung kann ein separates Sitzungsterminal und das Steuerterminal haben. Der erste Prozess der verbundenen Sitzung wird als Steuerungsprozess bezeichnet Der Prozess, der aktuell mit dem Terminal interagiert, wird als Vordergrundprozessgruppe bezeichnet, und die übrigen Prozessgruppen werden als Hintergrundprozessgruppe bezeichnet.

Tool POSIX.1-Definition:

  • Die Standardaktion des Auflegesignals (SIGHUP) ist das Beenden des Programms

  • Wenn die Terminalschnittstelle erkennt, dass die Netzwerkverbindung getrennt ist, sendet sie das SIGHUP-Signal an den Steuerungsprozess (den ersten Prozess der Sitzung);

    Wenn der erste Prozess der Sitzung beendet wird, wird dieses Signal an die Vordergrundprozessgruppe der Sitzung gesendet
  • Wenn ein Prozess beendet wird und eine verwaiste Prozessgruppe generiert wird Wenn sich ein verwaister Prozessgruppenprozess im STOP-Zustand befindet, werden die Signale SIGHUP und SIGCONT an alle Prozesse in der Prozessgruppe gesendet.
  • Wenn daher die Netzwerkverbindung getrennt oder das Fenster geschlossen wird, empfängt der Steuerungsprozess das SIGHUP-Signal und wird beendet, was dazu führt, dass andere Prozesse in der Sitzung beendet werden.

Ein einfaches Beispiel

Öffnen Sie zwei SSH-Terminalfenster und führen Sie im ersten den Befehl aus:

ping

Suchen Sie in einem anderen Terminalfenster die Prozess-ID von Wie verwende ich Screen zum Verwalten von Remote-Sitzungen? als 22132 und die ID des übergeordneten Prozesses ist 21803. Melden Sie sich also bei zsh an:

ping

Mit Wie verwende ich Screen zum Verwalten von Remote-Sitzungen? können Sie sehen, dass sich die Anmeldung bei zsh (PID 21803) und Ping in derselben Sitzung befinden, sodass die Prozessgruppen-PGID 21803 ist Die Prozessgruppen-PGID von Ping ist 22132, was die Vordergrundprozessgruppe ist.

ps -xj

Zu diesem Zeitpunkt schlossen wir das erste SSH-Remote-Fenster und sahen in einem anderen Fenster, dass der Ping-Prozess abgebrochen wurde: Wie verwende ich Screen zum Verwalten von Remote-Sitzungen?

Dies zeigt, dass bei der Ausführung einer zeitaufwändigen Aufgabe beim Schließen des Fensters der Aufgabenprozess abgebrochen wird und nicht wie erwartet im Hintergrund weiter ausgeführt wird. Wie verwende ich Screen zum Verwalten von Remote-Sitzungen?

Bildschirm verwenden

Nun müssen wir nicht mehr darüber sagen, was tut. Lassen Sie uns einfach darüber sprechen, wie man ihn verwendet .

1. Wenn Sie den Befehl screen

screen

direkt ausführen, wird ein Vollbildfenster zum Ausführen der Shell erstellt Der Titel des Fensters wurde in

eingegeben. Im Programm können Sie in diesem Fenster nach Belieben Befehle ausführen. Wenn Sie das Fenster verlassen möchten, geben Sie den Befehl Wie verwende ich Screen zum Verwalten von Remote-Sitzungen? ein.

2. Wenn Sie ein neues Fenster öffnen möchten, um eine andere Aufgabe auszuführen, können Sie Folgendes ausführen: screen

// 方法1
按键盘Ctrl+a +c, 会心打开一个screen窗口

// 方法2
screen 需要执行的任务的命令,比如:
screen ping www.baidu.com
screen3. Mehrere exitFensterwechsel
方法1
键盘Ctrl+a +[0..9]

方法2
键盘Ctrl+a +n, 下一个screen窗口
键盘Ctrl+a +p, 上一个screen窗口

Weitere Befehle sind verfügbar Schauen Sie sich das Bild unten an:

screen

Screen ist ein Fenstermanager, der ein physisches Terminal zwischen mehreren Prozessen multiplexen kann. Screen verfügt auch über das Sitzungskonzept. Benutzer können in einer Bildschirmsitzung mehrere Bildschirmfenster erstellen, und zwar wie bei der Bedienung einer echten SSH-Verbindung Fenster.

Empfohlene verwandte Video-Tutorials: „Linux-Tutorial

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonWie verwende ich Screen zum Verwalten von Remote-Sitzungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen