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. |
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 inactivesConnectez-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
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
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éeUtilisez à 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 pstreeUtilisez à 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!