4 juillet 2023

La magie du multitâche avec écran sous Linux : un guide essentiel

Découvrez comment améliorer votre efficacité avec l'utilisation de Screen, l'outil de gestion des sessions terminal sous Linux.

Écran Linux

Dans le monde de l'administration système Linux, les outils qui vous permettent d'effectuer plusieurs tâches et de multiplexer les sessions de terminal sont cruciaux. Ces outils facilitent l'exécution de processus en arrière-plan, permettant aux utilisateurs de libérer des ressources du terminal pour d'autres opérations, sans interrompre le processus en cours. Parmi les différents outils disponibles, "Screen" est l'un des plus populaires et des plus efficaces. Cet article explorera l'utilisation de Screen dans un environnement Linux.

Avantages d'exécuter une commande en arrière-plan

Avant de nous plonger dans le fonctionnement de Screen, il est important de comprendre pourquoi vous pourriez vouloir exécuter une commande en arrière-plan. Une opération longue et exigeante peut immobiliser le terminal pendant un temps considérable, empêchant l'exécution d'autres commandes. Au lieu d'attendre la fin du processus, vous pouvez l'exécuter en arrière-plan, libérant ainsi le terminal pour d'autres tâches.

Un autre avantage de l'exécution de commandes en arrière-plan est que les processus peuvent continuer à s'exécuter même après la déconnexion de l'utilisateur. Ceci est particulièrement utile dans un environnement réseau, où un utilisateur distant peut souhaiter démarrer un processus sur un serveur et le laisser s'exécuter indépendamment de sa connexion.

Qu'est-ce que l'écran

Screen est un gestionnaire de session de terminal plein écran pour les systèmes d'exploitation de type Unix. Il permet à l'utilisateur de démarrer une session de terminal, d'exécuter une application, puis de détacher et de rattacher la session, même à partir d'une connexion à distance. L'écran est très utile lorsque vous travaillez sur de longues sessions qui peuvent devoir être reprises ultérieurement ou lorsque vous travaillez sur des sessions à distance où la connexion peut être interrompue.

Comment lancer une commande en arrière-plan avec Screen

L'utilisation de Screen est assez simple. Pour démarrer une nouvelle session, tapez simplement "screen" dans la ligne de commande. Une fois la session démarrée, vous pouvez exécuter n'importe quelle commande ou application comme vous le feriez dans un terminal normal. Par exemple, vous pouvez démarrer un processus de sauvegarde complexe et long.

Pour déconnecter la session et la poursuivre en arrière-plan, utilisez la combinaison de touches 'Ctrl-A' suivi de 'D'. L'écran reviendra au shell d'origine et le processus commencera à s'exécuter en arrière-plan.

Comment récupérer une session d'écran

L'une des fonctionnalités les plus puissantes de Screen est la possibilité de rattacher une session précédente. Pour ce faire, vous devez d'abord localiser l'ID de la session que vous souhaitez récupérer. Cela peut être fait avec la commande "screen -ls", qui listera toutes les sessions actives.

Une fois l'ID de la session identifié, il peut être rattaché avec la commande « screen -r [ID] ». Cela ramènera l'utilisateur à la session Screen exactement comme il l'avait laissée, lui permettant de continuer là où il s'était arrêté.

Comment se détacher pour continuer la session en arrière-plan

Comme nous l'avons déjà mentionné, l'une des fonctionnalités les plus distinctives et les plus utiles de Screen est sa capacité à "détacher" une session de terminal en cours d'exécution et à la laisser fonctionner en arrière-plan. Cela permet à l'utilisateur de libérer la ligne de commande pour d'autres tâches, sans interrompre les processus déjà démarrés.

Pour activer cette fonction, vous devez être dans une session Screen et utiliser la combinaison de touches 'Ctrl-A' suivi de 'D'. Cette commande détachera immédiatement la session de terminal active, la mettant en arrière-plan et rendant le contrôle au terminal principal. À partir de là, l'utilisateur peut démarrer d'autres sessions Screen, exécuter d'autres commandes, ou même quitter le terminal ou se déconnecter, tandis que la session détachée continue de fonctionner malgré tout.

Ce qui rend cette fonctionnalité particulièrement puissante, c'est qu'une fois détachée, la session Screen n'est pas liée au terminal ou à la connexion de l'utilisateur. Il continue de fonctionner en arrière-plan, même si l'utilisateur se déconnecte ou ferme le terminal. Ceci est particulièrement utile dans le cas de processus ou d'opérations de longue durée sur des serveurs distants. Par exemple, vous pouvez démarrer un long processus de sauvegarde sur un serveur distant, détacher la session Screen, puis vous déconnecter. Le processus de sauvegarde continuera à s'exécuter sur le serveur quelle que soit votre connexion.

Ce type d'indépendance vous permet de gérer avec souplesse les processus et les tâches, offrant un contrôle transparent et une utilisation efficace des ressources. Que vous soyez un administrateur système travaillant sur des serveurs distants ou un utilisateur effectuant des tâches chronophages, Screen offre un moyen simple et efficace de gérer vos tâches.

Parfois, il peut arriver que la combinaison CTRL + A ne semble donner aucun signal ou produire aucun changement, en réalité vous n'aurez qu'à appuyer sur D par la suite pour voir le message de détachement.

Commandes, options, arguments et raccourcis :

Syntaxe:

écran [-opts] [cmd [args]]

Options:

-a : Forcer toutes les fonctionnalités dans chaque termcap de la fenêtre.
-A -[r|R] : Ajuste toutes les fenêtres à la nouvelle largeur et hauteur d'affichage.
-c fichier : Lit le fichier de configuration au lieu de '.screenrc'.
-d (-r) : détachez l'écran en cours d'exécution ailleurs (et rattachez-le ici).
-dmS name : démarrer en tant que démon : session d'écran en mode détaché.
-D (-r) : Détachez et raccrochez à distance (et raccrochez ici).
-D -RR : Faites le nécessaire pour obtenir une session d'écran.
-e xy : Modifier les caractères de la commande.
-f : Activer le contrôle de flux, -fn = désactivé, -fa = automatique.
-h lignes : définit la taille du tampon d'historique de défilement arrière.
-i : Arrêter la sortie plus tôt lorsque le contrôle de flux est actif.
-l : active le mode d'accès (mise à jour /var/run/utmp), -ln = off.
-ls [match] : affiche tous les écrans liés.
-L : Activer la journalisation des sorties.
-m : ignore la variable $STY, crée une nouvelle session d'écran.
-O : Choisissez une sortie optimale plutôt qu'une émulation vt100 exacte.
-p window : Présélectionne la fenêtre nommée si elle existe.
-q : démarrage silencieux. Sortie avec un code de retour différent de zéro en cas d'échec.
-Q : les commandes enverront une réponse à la sortie standard du processus de requête.
-r [session] : se rattache à un processus d'écran détaché.
-R : Raccrochez si possible, sinon démarrez une nouvelle session.
-S sockname : Nommez cette session .sockname au lieu de …
-t titre : définit le titre. (nom de la fenêtre).
-T term : utilise term comme $TERM pour les fenêtres, plutôt que "screen".
-U : indique à l'écran d'utiliser l'encodage UTF-8.
-v : Affiche "Version d'écran 4.06.02 (GNU) 23-Oct-17".
-x : Lien vers un écran non détaché. (Mode d'affichage multiple).
-X : Exécuter en tant que commande d'écran dans la session spécifiée.

Options de raccourci :

Ctrl-a + c : Créer une nouvelle fenêtre.
Ctrl-a + w : Liste toutes les fenêtres actuellement ouvertes.
Ctrl-a + A : Renommer la fenêtre courante. Le nom apparaîtra lorsque vous listerez les fenêtres ouvertes avec Ctrl-a + w.
Ctrl-a + n : Aller à la fenêtre suivante.
Ctrl-a + p : Aller à la fenêtre précédente.
Ctrl-a + Ctrl-a : Revenir à la dernière fenêtre utilisée.
Ctrl-a + k : Ferme la fenêtre en cours (kill).
Ctrl-a + S : Divise la fenêtre actuelle horizontalement. Pour basculer entre les fenêtres, faites Ctrl-a + Tab.
Ctrl-a + | : divise la fenêtre actuelle verticalement.
Ctrl-a + d : Détacher une session d'écran sans l'arrêter.

conclusion

Screen, en tant que gestionnaire de session de terminal, est un allié puissant pour quiconque travaille avec des systèmes Linux. Sa polyvalence se reflète dans les nombreuses fonctions qu'il offre, ce qui en fait un véritable multitool dans le domaine de l'administration système.

Le premier avantage évident de Screen est sa capacité à libérer des ressources système pour d'autres tâches. Cela permet aux utilisateurs de s'engager dans plusieurs tâches simultanément, sans avoir à attendre qu'une commande ou un processus termine son cycle d'exécution. En pratique, Screen permet de déléguer une série d'opérations au système d'exploitation, puis de revenir vérifier ultérieurement leur état ou leurs résultats.

Mais Screen ne s'arrête pas là. Il offre également la possibilité de gérer des processus de longue durée qui peuvent être suspendus et repris ultérieurement. Ceci est extrêmement utile pour les opérations qui prennent beaucoup de temps, telles que la sauvegarde de grandes quantités de données, l'exécution de scripts de maintenance complexes ou la mise en œuvre de mises à jour logicielles à grande échelle. Avec Screen, ces processus peuvent être démarrés, surveillés et, si nécessaire, suspendus, puis repris exactement là où ils se sont arrêtés, sans perdre aucune progression.

Pour ceux qui travaillent dans des environnements distants, Screen offre un niveau de confort supplémentaire. La possibilité de déconnecter une session en cours, de se déconnecter du système puis de reconnecter ultérieurement la même session, quelle que soit la localisation géographique, fait de Screen un outil indispensable pour l'administration à distance des serveurs et des systèmes.

En conclusion, pour ceux qui gèrent des opérations complexes et chronophages, travaillent à distance, ou veulent simplement optimiser leur flux de travail avec le terminal, Screen peut être un ajout inestimable à votre boîte à outils. Avec sa large gamme de fonctionnalités et sa facilité d'utilisation, Screen est un allié de confiance dans l'administration système, rendant la vie des utilisateurs de Linux non seulement plus facile, mais aussi plus productive.

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous !

Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

Managed Server Srl est un acteur italien leader dans la fourniture de solutions système GNU/Linux avancées orientées vers la haute performance. Avec un modèle d'abonnement peu coûteux et prévisible, nous garantissons que nos clients ont accès à des technologies avancées en matière d'hébergement, de serveurs dédiés et de services cloud. En plus de cela, nous proposons des conseils système sur les systèmes Linux et une maintenance spécialisée en SGBD, sécurité informatique, Cloud et bien plus encore. Nous nous distinguons par notre expertise dans l'hébergement de CMS Open Source de premier plan tels que WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart et Magento, soutenus par un service d'assistance et de conseil de haut niveau adapté aux administrations publiques, aux PME et à toutes tailles.

Red Hat, Inc. détient les droits de Red Hat®, RHEL®, RedHat Linux® et CentOS® ; AlmaLinux™ est une marque commerciale d'AlmaLinux OS Foundation ; Rocky Linux® est une marque déposée de la Rocky Linux Foundation ; SUSE® est une marque déposée de SUSE LLC ; Canonical Ltd. détient les droits sur Ubuntu® ; Software in the Public Interest, Inc. détient les droits sur Debian® ; Linus Torvalds détient les droits sur Linux® ; FreeBSD® est une marque déposée de la FreeBSD Foundation ; NetBSD® est une marque déposée de la Fondation NetBSD ; OpenBSD® est une marque déposée de Theo de Raadt. Oracle Corporation détient les droits sur Oracle®, MySQL® et MyRocks® ; Percona® est une marque déposée de Percona LLC ; MariaDB® est une marque déposée de MariaDB Corporation Ab ; REDIS® est une marque déposée de Redis Labs Ltd. F5 Networks, Inc. détient les droits sur NGINX® et NGINX Plus® ; Varnish® est une marque déposée de Varnish Software AB. Adobe Inc. détient les droits sur Magento® ; PrestaShop® est une marque déposée de PrestaShop SA ; OpenCart® est une marque déposée d'OpenCart Limited. Automattic Inc. détient les droits sur WordPress®, WooCommerce® et JetPack® ; Open Source Matters, Inc. détient les droits sur Joomla® ; Dries Buytaert détient les droits sur Drupal®. Amazon Web Services, Inc. détient les droits sur AWS® ; Google LLC détient les droits sur Google Cloud™ et Chrome™ ; Facebook, Inc. détient les droits sur Facebook® ; Microsoft Corporation détient les droits sur Microsoft®, Azure® et Internet Explorer® ; La Fondation Mozilla détient les droits sur Firefox®. Apache® est une marque déposée de The Apache Software Foundation ; PHP® est une marque déposée du groupe PHP. CloudFlare® est une marque déposée de Cloudflare, Inc. ; NETSCOUT® est une marque déposée de NETSCOUT Systems Inc. ; ElasticSearch®, LogStash® et Kibana® sont des marques déposées d'Elastic NV. Ce site n'est affilié, sponsorisé ou autrement associé à aucune des entités mentionnées ci-dessus et ne représente aucune de ces entités de quelque manière que ce soit. Tous les droits sur les marques et noms de produits mentionnés sont la propriété de leurs titulaires respectifs des droits d'auteur. Toutes les autres marques mentionnées appartiennent à leurs titulaires. MANAGED SERVER® est une marque déposée au niveau européen par MANAGED SERVER SRL Via Enzo Ferrari, 9 62012 Civitanova Marche (MC) Italie.

Retour en haut de page