Maison >Opération et maintenance >exploitation et maintenance Linux >Comment utiliser Screen pour gérer les sessions à distance ?

Comment utiliser Screen pour gérer les sessions à distance ?

青灯夜游
青灯夜游avant
2019-03-28 14:20:082350parcourir

Le contenu de cet article est de présenter la méthode d'utilisation de Screen pour gérer les sessions à distance. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Lors du développement local, j'ai souvent besoin d'utiliser des connexions distantes pour me connecter aux serveurs Linux. Au début, j'ouvrais plusieurs fenêtres SSH lorsque j'avais plusieurs télécommandes. Cette méthode est très primitive et directe, mais elle souffre toujours. La saisie du mot de passe est suffisante. Même si vous utilisez SSH pour vous connecter sans mot de passe, vous aurez l'impression que la saisie des commandes SSH à chaque fois n'est pas rapide du tout. De plus, si vous ouvrez trop de fenêtres, cela sera déroutant et difficile à gérer. Dans ce cas, les outils sur Linux Il y en a beaucoup, découvrons les screen outils aujourd'hui.

Lors de la présentation de l'outil screen, voyons d'abord pourquoi après la connexion au serveur, lors de l'exécution d'une tâche à long terme, nous fermons la fenêtre de connexion à distance et la tâche est tuée ?

Le coupable : le signal SIGUP

Sous Linux/Unix, on retrouve les concepts suivants :

  • Groupe de processus : une collection d'un ou plusieurs processus, chaque groupe de processus a un identifiant de groupe de processus unique

  • session : un ou une collection de plusieurs groupes de processus a un chef de session unique ; , et l'ID de session est l'ID du processus leader ;

  • La session peut avoir un terminal de session séparé, et le terminal de contrôle Le premier processus de la session connectée est appelé le processus de contrôle, le Le processus qui interagit actuellement avec le terminal est appelé groupe de processus de premier plan, et les groupes de processus restants sont appelés groupe de processus d'arrière-plan.

Définition de l'outil POSIX.1 :

  • L'action par défaut du signal de raccrochage (SIGHUP) est de terminer le programme

  • Lorsque l'interface du terminal détecte que la connexion réseau est déconnectée, elle enverra le signal SIGHUP au processus de contrôle (le premier processus de la session

  • ) ;
  • Si le premier processus de la session se termine, ce signal sera envoyé au groupe de processus de premier plan de la session

  • Lorsqu'un processus se termine et qu'un groupe de processus orphelins est généré. , si un processus d'un groupe de processus orphelin est à l'état STOP, les signaux SIGHUP et SIGCONT sont envoyés au groupe de processus Tous les processus du groupe de processus.

Par conséquent, lorsque le réseau est déconnecté ou que la fenêtre est fermée, le processus de contrôle reçoit le signal SIGHUP et se termine, ce qui entraînera la fermeture des autres processus de la session.

Un exemple simple

Ouvrez deux fenêtres de terminal SSH et exécutez la commande

dans la première : ping

Comment utiliser Screen pour gérer les sessions à distance ?

Dans une autre fenêtre de terminal, recherchez l'ID de processus de

comme 22132 et son ID de processus parent est 21803, c'est-à-dire connectez-vous à zsh : ping

Comment utiliser Screen pour gérer les sessions à distance ?

En utilisant

, vous pouvez voir que la connexion à zsh (PID 21803) et ping se font dans la même session, zsh est le premier processus de la session, donc le groupe de processus PGID est 21803, et le Le PGID du groupe de processus du ping est 22132, qui est le groupe de processus de premier plan. ps -xj

Comment utiliser Screen pour gérer les sessions à distance ?

À ce moment-là, nous avons fermé la première fenêtre distante SSH et avons vu que le processus ping avait été interrompu dans une autre fenêtre :

Comment utiliser Screen pour gérer les sessions à distance ?

Cela montre que lorsque nous effectuons une tâche fastidieuse, si nous fermons la fenêtre, le processus de tâche sera interrompu et il ne continuera pas à s'exécuter en arrière-plan comme prévu.

Utiliser l'écran

Maintenant, il n'est pas nécessaire d'en dire plus sur ce que

fait, parlons simplement de la façon de l'utiliser . screen

1. Exécutez directement la commande

screen

Comment utiliser Screen pour gérer les sessions à distance ?

créera une fenêtre plein écran pour exécuter le shell. le titre de la fenêtre a été invité à être dans screenDans le programme, vous pouvez exécuter des commandes à volonté dans cette fenêtre. Si vous souhaitez quitter, entrez la commande screen. exit

2. Si vous souhaitez ouvrir une nouvelle fenêtre pour effectuer une autre tâche, vous pouvez exécuter :

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

// 方法2
screen 需要执行的任务的命令,比如:
screen ping www.baidu.com
3. > Pour plus de commandes, voir l'Comment utiliser Screen pour gérer les sessions à distance ? ci-dessous :

screen

方法1
键盘Ctrl+a +[0..9]

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

Screen est un gestionnaire de fenêtres qui peut multiplexer un terminal physique entre plusieurs processus. Screen a également le concept de session. Les utilisateurs peuvent créer plusieurs fenêtres d'écran dans une session d'écran, et dans chacune d'elles, la fenêtre d'écran revient à exploiter une véritable connexion SSH. fenêtre.

Tutoriels vidéo associés recommandés : "Tutoriel Linux"

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

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