Screen: Utilisation de base
Rapide article expliquant le fonctionnement de l’outil screen sur GNU/Linux.
Aujourd’hui nous allons donc voir ce qu’est screen, comment l’installer, et comment l’utiliser de manière classique !
I) Un multiplexeur de terminaux
Screen est donc multiplexeur de terminaux… ce nom barbare signifie que c’est un logiciel qui permet d’ouvrir plusieurs terminaux dans une seule et unique console.
Par exemple, si vous êtes en mode console et que vous démarrez un script ou un service, comme par ex. un serveur de jeu, le service est bien exécuté mais si vous fermez la console ou que vous réalisez un Ctrl + C, et bien le processus se ferme ! Logique…
Pour parer à ça, on peut utiliser un multiplexeur qui va faire en sorte de nous permettre de jongler entre plusieurs terminaux, et donc d’ouvrir par exemple :
- Un serveur de jeu ;
- Un script Python ;
- Une liste de commandes (apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y && apt auto-remove) ;
Et au besoin, on pourra re-basculer entre chacun de des terminaux.
II) Screen, comment l’installer
Screen est donc un logiciel parmis d’autre (mais c’est le plus connu sur GNU/Linux) qui va nous permettre de réaliser cela. Pour l’installer, rien de plus simple dépendant de votre distribution :
- apt-get install screen ;
- dnf install screen ;
- pacman -Sy screen ;
- …
Bref, ce dernier est présent par défaut dans les dépôts de bon nombre de distributions. Ici, pour les exemples plus bas nous utiliserons une Oracle Linux 8 (clone de CentOS), mais les commandes sont les même qu’importe la distribution.
III) Les commandes de base et l’utilisation classique
La première étape est donc d’ouvrir un terminal (classique). Ensuite, une fois le paquet installé, nous allons créer un premier « screen » :
screen -S nom-du-screen
Par exemple je vais créer un screen nommé « monitoring » où j’exécuterai basiquement la commande top :
screen -S monitoring
Si ensuite je lance un screen -ls, je vais pouvoir lister mes screens ouverts, et on retrouve bien « monitoring » !
D’ailleurs, quand vous ouvrez votre screen via -S, à part votre terminal qui « clignote », vous n’aurez pas de message vous indiquant que vous avez créé un screen, c’est normal.
On notera aussi le paramètre (Attached), qui signifie que c’est sur ce screen que je suis connecté actuellement. Pour m’en détacher et en créer un second par exemple, il me suffit de faire un Ctrl + a + d :
Comme on peut le voir, en faisant le raccourci clavier cité plus haut, j’ai un message me disant que le screen monitoring a été détaché, et en refaisant un screen -ls, on peut voir que le paramètre a bien changé.
A noter que le numéro avant le nom (ici 3844) indique l’ID du screen en question, et pour le ré-ouvrir nous pouvons donc réaliser une de ces deux commandes :
screen -r monitoring
screen -r 3844
Et le tour est joué !
Ensuite, pour supprimer un screen, nous avons plusieurs façons :
- Soit se connecter dessus, et réaliser un simple « exit », comme quand nous souhaitons fermer un terminal classique ;
- Soit se connecter dessus, et réaliser ctrl + a, puis : et y écrire quit (plus long que la première option) ;
- Soit réaliser la commande suivante : screen -X -S nomduscreen quit, le paramètre -X permet d’envoyer une commande, et le -S permet de définir à quel screen l’envoyer ;
Bien entendu, screen regorge aussi d’autres fonctionnalités plus poussées : split d’écran, navigation via raccourcis claviers, etc. Je vous laisse lire le manuel via la commande man ou vous rendre sur le site d’Ubuntu.fr pour en savoir plus si vraiment vous désirez le maîtriser à la perfection, mais ces quelques commandes sont déjà plus que suffisantes 😉
IV) Conclusion
Ce rapide article touche désormais à sa fin, comme d’habitude j’espère vous avoir appris quelques bricoles, même si cet utilitaire est d’ores et déjà très connu. Bien entendu, si vous ne souhaitez pas vous « embêter » à installer un package, vous pouvez utiliser des commandes comme bg, fg, etc, même si de ce que j’ai pu voir de nos jours la plupart des admin. sys. ne s’embêtent plus et utilisent screen ou d’autres alternatives.
Sur ce, je vous souhaite une bonne journée/soirée !
2 comments