Screen
-
Screen est un utilitaire en ligne de commande communément disponible dans les distributions de Linux.
Il permet d’exécuter un programme dans une console utilisateur détachée du processus lanceur (votre terminal par exemple)- au lancement, la main est immédiatement rendue à l’appelant, l’exécution du programme continue en parallèle
- une fois votre commande lancée elle continuera à s’exécuter même si vous fermez votre terminal, ou le programme appelant
- vous pouvez facilement accéder à la console pour afficher les sorties standard et erreur de votre programme, et re-sortir sans l’interrompreLes exemples d’utilisation dans un contexte it.rocks ci-dessous sont valables sous debian, et facilement transposables à d’autres distributions.
Installation
apt install screen
Lancer une commande en parallèle
Par exemple le serveur d’exécution d’actions déclenchées embarqué dans it.rocks : depuis un terminal :
screen -dmS trigger-server itrocks/framework/console /ITRocks/Framework/Trigger/Server/run
Attention : par ce biais, dès que le programme exécuté arrive à son terme, la main est rendue et la console d’exécution se ferme, il n’est donc pas possible de visualiser un affichage qui arriverait en fin d’exécution par ce biais.
Ouvrir un terminal en parallèle
On peut ouvrir un terminal en parallèle et lancer l’exécution depuis ce terminal : ça évite notamment que le screen se ferme automatiquement quand l’exécution du programme arrivera à son terme : vous pourrez alors toujours rentrer dans le screen, constater l’arrêt, voir l’affichage généré.
screen -dmS trigger-server screen -r trigger-server itrocks/framework/console /ITRocks/Framework/Trigger/Server/run
Accéder à la console pendant l’exécution :
Depuis un terminal :
screen -r trigger-server
Si le programme tourne toujours, vous vous retrouvez dans son terminal d’exécution.
Dans l’exemple ici en principe le serveur d’exécution d’actions déclenchées ne génère aucun affichage, la console devrait donc être noire, à moins qu’une anomalie d’accès à la base de données, par exemple, n’ait lieu (mais l’interruption du programme provoquera la fermeture de la console).Sortir de la console d’exécution :
La combinaison de touches du clavier Ctrl+A puis D permet de sortir de la console sans interrompre l’exécution.