Einführung | Wie schließe ich eine inaktive SSH-Sitzung? Verwenden Sie zuerst den Befehl w, um die inaktive oder inaktive SSH-Sitzung zu identifizieren, verwenden Sie dann den Befehl pstree, um die PID der inaktiven Sitzung abzurufen, und verwenden Sie schließlich den Befehl kill, um die Sitzung zu schließen. |
Nehmen wir an, dass Ihre Sitzungsverbindung aufgrund von Netzwerk-, Strom- oder lokalen PC-Neustarts unterbrochen wird, wenn Sie über SSH an einem Server arbeiten.
Sie können sich möglicherweise erneut beim Server anmelden, um mit der Arbeit fortzufahren, es bleibt jedoch immer die SSH-Sitzung übrig, die zuvor nicht geschlossen wurde.
Wie schließe ich eine inaktive SSH-Sitzung? Verwenden Sie zuerst den Befehl w, um die inaktive oder inaktive SSH-Sitzung zu identifizieren, verwenden Sie dann den Befehl pstree, um die PID der inaktiven Sitzung abzurufen, und verwenden Sie schließlich den Befehl kill, um die Sitzung zu schließen.
Empfohlene Lektüre: Mosh (Mobile Shell) – Die beste SSH-Fernverbindungsalternative
So identifizieren Sie inaktive oder inaktive SSH-SitzungenMelden Sie sich beim System an und überprüfen Sie mit dem Befehl w, wie viele Benutzer derzeit angemeldet sind. Sobald Sie Ihre Sitzungsverbindung identifiziert haben, können Sie andere inaktive oder inaktive SSH-Sitzungen zum Schließen notieren.
In meinem aktuellen Beispiel sehe ich zwei angemeldete Benutzer, von denen einer die SSH-Sitzung ist, in der ich gerade den Befehl „w“ ausführe, und der andere die vorherige Sitzung im Leerlauf.
# w 10:36:39 up 26 days, 20:29, 2 users, load average: 0.00, 0.02, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 219.91.219.14 10:34 28.00s 0.00s 0.00s -bash root pts/2 219.91.219.14 10:36 0.00s 0.00s 0.00s w
Um eine inaktive SSH-Sitzung zu schließen, benötigen wir die PID des übergeordneten Prozesses des inaktiven Sitzungsprozesses. Wir können den Befehl pstree ausführen, um ein Baumdiagramm einschließlich aller Prozesse anzuzeigen und die PID des übergeordneten Prozesses zu erhalten.
Sie erhalten eine Ausgabe ähnlich dem folgenden Beispiel. Die Ausgabe des Befehls pstree wird viel mehr sein, und ich habe zum besseren Verständnis viele irrelevante Inhalte gelöscht.
# pstree -p init(1)-+-abrtd(2131) |-acpid(1958) |-httpd(32413)-+-httpd(32442) | |-mingetty(2198) |-mysqld_safe(24298)---mysqld(24376)-+-{mysqld}(24378) | |-php(32456)-+-php(32457) | |-sshd(2023)-+-sshd(10132)---bash(10136) | `-sshd(10199)---bash(10208)---pstree(10226) |-udevd(774)-+-udevd(2191) `-udevd(27282)
In der obigen Ausgabe sehen Sie ein Baumdiagramm der SSHD-Prozesse und -Zweige. Der Hauptprozess von sshd ist sshd (2023), und die anderen beiden Zweige sind sshd (10132) und sshd (10199).
Wie ich am Anfang des Artikels sagte, ist eine davon meine neue Sitzungsverbindung sshd(10199), die den pstree-Befehl anzeigt, den ich ausführe, sodass die Leerlaufsitzung ein anderer Prozess als sshd(10132) ist.
Empfohlene Lektüre: So greifen Sie über einen Standard-Webbrowser auf den Secure Shell (SSH)-Server zu
Empfohlene Lektüre: PSSH – Befehle parallel auf mehreren Linux-Servern ausführen
Wir haben alle Informationen zu Leerlaufsitzungen. Lassen Sie uns also den Befehl kill verwenden, um die Leerlaufsitzung zu schließen. Bitte stellen Sie sicher, dass Sie die unten stehende PID durch die PID für die Leerlaufsitzung auf Ihrem Server ersetzen.
# kill -9 10132
(LCTT-Übersetzung: Hier ist ein weiteres Tool pkill. Verwenden Sie pkill -t pts/0 -kill, um die Sitzung zu schließen. Es ist unter Debian 8 verfügbar. Einige Versionen scheinen die Position von -kill ändern zu müssen)
Überprüfen Sie noch einmal, ob die Leerlaufsitzung geschlossen wurdeVerwenden Sie den w-Befehl erneut, um zu sehen, ob die Leerlaufsitzung geschlossen wurde. Das ist richtig, nur meine aktuelle Sitzung ist noch da, daher wurde die inaktive Sitzung geschlossen.
# w 10:40:18 up 26 days, 20:33, 1 user, load average: 0.11, 0.04, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/2 219.91.219.14 10:36 0.00s 0.00s 0.00s w
Empfohlene Lektüre: rtop – ein nützliches Tool zur Überwachung von Remote-Servern über SSH
Empfohlene Lektüre: DSH – Befehle auf mehreren Linux-Servern gleichzeitig ausführen
Überprüfen Sie es noch einmal mit dem pstree-BefehlVerwenden Sie zur Bestätigung erneut den pstree-Befehl. Ja, nur meine eigene SSH-Sitzung ist noch da.
# pstree -p init(1)-+-abrtd(2131) |-acpid(1958) | |-httpd(32413)-+-httpd(32442) | |-mingetty(2198) |-mysqld_safe(24298)---mysqld(24376)-+-{mysqld}(24378) | |-php(32456)-+-php(32457) | |-sshd(2023)---sshd(10199)---bash(10208)---pstree(10431) |-udevd(774)-+-udevd(2191) `-udevd(27282)
Das obige ist der detaillierte Inhalt vonSo beenden Sie ungenutzte oder inaktive SSH-Sitzungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!