Maison  >  Article  >  Tutoriel système  >  Comment mettre fin aux sessions SSH inutilisées ou inactives

Comment mettre fin aux sessions SSH inutilisées ou inactives

WBOY
WBOYavant
2024-01-03 14:24:271151parcourir
Présentation Comment fermer une session ssh inactive ? Utilisez d'abord la commande w pour identifier la session ssh inactive ou inactive, puis utilisez la commande pstree pour obtenir le PID de la session inactive, et enfin utilisez la commande kill pour fermer la session.

Comment mettre fin aux sessions SSH inutilisées ou inactives
Supposons que lorsque vous travaillez sur un serveur via ssh, la connexion de votre session est déconnectée en raison du réseau, de l'alimentation ou du redémarrage du PC local.

Vous pouvez ou non vous reconnecter au serveur pour continuer à travailler, mais vous vous retrouverez toujours avec la session ssh qui n'a pas été fermée auparavant.

Comment fermer une session ssh inactive ? Utilisez d'abord la commande w pour identifier la session ssh inactive ou inactive, puis utilisez la commande pstree pour obtenir le PID de la session inactive, et enfin utilisez la commande kill pour fermer la session.

Lecture recommandée : Mosh (Mobile Shell) - La meilleure alternative à la connexion à distance SSH

Comment identifier les sessions SSH inactives ou inactives

Connectez-vous au système et utilisez la commande w pour vérifier combien d'utilisateurs sont actuellement connectés. Une fois que vous avez identifié la connexion de votre session, vous pouvez noter la fermeture des autres sessions ssh inactives ou inactives.
Dans mon exemple actuel, je peux voir deux utilisateurs connectés, dont l'un est la session ssh dans laquelle j'exécute actuellement la commande w et l'autre est la session inactive précédente.

# 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
Comment obtenir le PID d'une session SSH

Pour fermer une session SSH inactive, nous avons besoin du PID du processus parent du processus de session inactive. Nous pouvons exécuter la commande pstree pour afficher un diagramme arborescent comprenant tous les processus afin d'obtenir le pid du processus parent.
Vous obtiendrez un résultat similaire à l’exemple ci-dessous. Le résultat de la commande pstree sera bien plus que cela, et j'ai supprimé de nombreux contenus non pertinents pour une meilleure compréhension.

# 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)

À partir du résultat ci-dessus, vous pouvez voir un diagramme arborescent des processus et des branches sshd. Le processus principal de sshd est sshd(2023), et les deux autres branches sont sshd(10132) et sshd(10199).

Comme je l'ai dit au début de l'article, l'un d'eux est ma nouvelle connexion de session sshd(10199) qui montre la commande pstree que j'exécute, donc la session inactive est un autre processus comme sshd(10132).

Lecture recommandée : Comment accéder au serveur Secure Shell (SSH) via un navigateur Web standard
Lecture recommandée : PSSH - Exécuter des commandes en parallèle sur plusieurs serveurs Linux

Comment fermer une session SSH inactive

Nous avons toutes les informations sur les sessions inactives. Utilisons donc la commande kill pour fermer la session inactive. Veuillez vous assurer de remplacer le PID ci-dessous par le PID de session inactive sur votre serveur.

# kill -9 10132

(Traduction LCTT : Voici un autre outil pkill. Utilisez pkill -t pts/0 -kill pour fermer la session. Il est disponible sous debian 8. Certaines versions semblent devoir changer la position de -kill)

Vérifiez à nouveau si la session inactive a été fermée

Utilisez à nouveau la commande w pour voir si la session inactive a été fermée. C'est vrai, seule ma session en cours est toujours là, donc la session inactive a été fermée.

# 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

Lecture recommandée : rtop - un outil utile pour surveiller les serveurs distants via SSH

Lecture recommandée : DSH - Exécuter des commandes sur plusieurs serveurs Linux simultanément

Vérifiez à nouveau en utilisant la commande pstree

Utilisez à nouveau la commande pstree pour confirmer. Oui, seule ma propre session ssh est toujours là.

# 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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer