Accéder au contenu principal

La commande "screen" pour exécuter des commandes en arrière plan

   Screen
Il est assez fréquent lorsque l'on travaille sous Linux, sur le Raspberry Pi, par exemple de lancer une commande shell pour faire une installation ou faire tourner un programme. Cela se fait le plus souvent en se connectant en ssh avec Putty. Mais que se passe t'il si vous souhaitez déconnecter votre PC? La session ssh se termine et votre programme avec.

Deux solutions pour pallier à cet inconvénient:
1. Lancer votre application précédée par la commande nohup.
ex: nohup java -jar mincecraftServer.jar &
2. Utiliser l'application GNU screen

Application screen

L'application screen, une fois démarrée vous permet d'avoir dans la même session shell plusieurs fenêtres indépendantes. Une seule fenêtre sera cependant active à la fois. Screen vous permet ensuite de naviguer entre les différentes fenêtres. L'un des aspects les plus intéressant de cet outil est que vous pouvez vous détacher à n'importe quel moment. Les shells qui tournent sous l'environnement screen continueront de tourner même si vous fermez votre session Linux. Vous pourrez vous rattacher à n'importe quel moment.

1. Installation

Screen est une application en ligne de commande. Vous pouvez la récupérer dans les repositories avec la commande : sudo apt-get install screen

2. Démarrer screen

Screen se démarre en exécutant simplement la commande screen.

3. Commandes

Voici quelques commandes qui vous seront utiles pour naviguer entre les fenêtres :
Ctrl-A+? - Affiche l'aide d'utilisation
Ctrl-A+c - Crée une nouvelle fenêtre (Create)
Ctrl-A+n - Passe à la fenêtre suivante (Next)
Ctrl-A+p - Passe à la fenêtre précédente (Previous)
Ctrl-A+" - Affiche la liste des fenêtres
Ctrl-A+H - Enregistre le contenu de la fenêtre dans ~/screenlog.0 pour la fenêtre 0
Ctrl-A+S - Divise l'écran horizontalement (Split)
Ctrl-A+Tab - Passe au second écran splitté
Ctrl-A+Q - Revient dans une seule fenêtre
Ctrl-A+A - Permet de donner un nom à la fenêtre
Ctrl-A+d - Détache la session (Detach)
Ctrl-A+K - Termine la session (Kill)

screen -S name => Pour créer une session avec un nom
screen -x => Pour se reconnecter à la dernière session
screen -r [<pid>] => Se reconnecte en indiquant le process id de screen
screen -ls => Donne la liste les process screen en cours

                   Screen key bindings, page 1 of 2.

                   Command key:  ^A   Literal ^A:  a

 break      ^B b        lockscreen X           screen     ^C c
 clear      C           log        H           select     '
 colon      :           login      L           silence    _
 copy       ^[ [        meta       a           split      S
 detach     ^D d        monitor    M           suspend    ^Z z
 digraph    ^V          next       ^@ ^N sp n  time       ^T t
 displays   *           number     N           title      A
 fit        F           only       Q           vbell      ^G
 flow       ^F f        other      ^A          version    v
 focus      ^I          pow_break  B           width      W
 help       ?           pow_detach D           windows    ^W w
 history    { }         prev       ^P p ^?     wrap       ^R r
 info       i           readbuf    <           writebuf   >
 kill       K           redisplay  ^L l        xoff       ^S s
 lastmsg    ^M m        removebuf  =           xon        ^Q q
 license    ,           reset      Z

Voici un lien vers la page officielle : https://www.gnu.org/software/screen/manual/

Utilisation comme terminal TTY/série
La commande screen a utilisation beaucoup moins connue qui lui permet d'être utilisé comme terminal série. Une fois que vous avez identifié le terminal sur lequel vous souhaitez vous connecter, lancez la commande (115200 est la vitesse en bauds) :
screen /dev/ttyUSB0 115200

Commentaires

Posts les plus consultés de ce blog

Supprimer les partitions Raspberry sur une carte SD sous Windows 7 avec Diskpart

Si vous souhaitez récupérer une ancienne carte SD utilisée pour démarrer un Raspberry pour un autre usage (appareil photo, etc), il vous faudra supprimer les deux partitions créées au moment de l'écriture de l'image sur la carte SD. Vous pouvez voir les partition en sélectionnant Menu Windows/Ordinateur/bouton droit "Gérer". Voici un exemple du résultat final. Vous pouvez supprimer la partition Unix de 7 Gb (ou 4Gb en fonction de la taille de votre carte) en sélectionnant la partition puis en faisant "bouton droit Supprimer". Laissez juste une partition pour pouvoir faire les autres manipulations avec DISKPART. Démarrez l'outil DISKPART en ligne de commande. Une nouvelle fenêtre s'ouvrira. Microsoft DiskPart version 6.1.7601 Copyright (C) 1999-2008 Microsoft Corporation. Sur l'ordinateur : FRVILN0H305806 DISKPART> list disk   N° disque  Statut         Taille   Libre    Dyn  GPT   ---------  -------------  -------  -------  ---  ---   D

Comment lire son écran de téléphone Android sur PC (2)

Voici une nouvelle manière d'accéder à votre téléphone depuis votre PC. Cette méthode utilise le câble USB et Google Chrome. Elle fonctionne donc sur Windows, Mac et Linux. Les pré-requis sont les mêmes que ceux du billet précédent : Téléphone configuré en mode Développement Drivers USB installés sur le PC Google Chrome installé L'application Vysor s'installe comme une extension de Google Chrome. Cherchez dans le Webstore et lancez l'installation. Une fois installée, l'application apparaît dans les extensions. Vous pouvez la lancer de différentes manières. La manière la plus simple est d'ouvrir la fenêtre des applications : chrome://apps/ Une autre manière est de créer un raccourci en cliquant sur « Détails ». Ensuite créez un raccourci sur le bureau, le menu démarrer et/ou la barre de tâche. Vous pouvez également cliquer sur afficher dans la boutique et lancer l'application depuis la boutique. Une fois

Serveur d'impression CUPS sur Raspberry Pi

Je possède une très vieille imprimante laser HP Laserjet 6L noir et blanc de 12 ans d'age qui a survécu à plusieurs imprimantes jet d'encre couleurs tombées en désuétude pour obsolescence programmée. J'envisage tout de même sérieusement de les démanteler pour les recycler en CNC, graveur ou autre.   Je continue donc a utiliser cette bonne petite imprimante parallèle qui me rend bien des services (en 12 ans, j'ai changé le toner 3 fois pour un coût de 20 € la cartouche). J'ai donc dû m'équiper d'une adaptateur USB/Parallèle pour pouvoir la connecter sur un PC récent. Le problème principal est que le driver de cette imprimate n'est reconnu que par un seul de mes PC sous Windows 7. Les autres PC sous Windows 8 ou Windows 10 reconnaissent bien l'imprimante, mais sortent des feuilles avec le code Postscript. L'impression depuis une tablette ou un téléphone Androïd est également tout simplement impossible. Pour remédier à ce problème, j'ai don