détacher des processus avec la commande nohup
But: pouvoir detacher un processus et le faire tourner meme si on n’est pas connecté: (voir https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/ )
Fonctionnement
Pour créer un screen (nommé nomduscreen)
screen -S nomduscreen
Pour sortir du screen, le détacher: “To detach a screen from the remote terminal, just press “Ctrl+a” immediately followed by “d”” ctrl+a puis d
pour voir tous les screen qu’on a, dans un terminal normal:
screen -r
There are several suitable screens on:
2283.pts-100.service7 (Detached)
2221.testcamille (Detached)
s'il n'y a qu'un screen, screen -r permet de revenir au screen
si plusieurs screen, cela les liste
Pour aller dedans:
# si le résultat de la commande est un tableau
screen -r 2221.testcamille
# si on veut se connecter au screen avec ce numéro
Pour en supprimer un, aller dedans puis:
exit
Autres infos à trier:
Execution de son programme :
screen -S session_julien ./monprog >output.txt 2>&1&
→ et on ferme la fenetre (on peut egalement fermer sa session cela ne pose pas de pb)
Pour voir si il y a des screens qui tournent :
screen -ls
De chez soi on se connecte sur la machine sur laquelle on a des scripts qui tournent en nohup et on recupere le shell via la commande :
screen -r session_julien
screen et le shell multi-utilisateur pour travailler avec un collegue de travail sur un meme shell !
Moi (utilisateur root)
Moi : chmod u+s /usr/bin/screen
Moi : screen -S test
Lui : screen -r root/ (bien specifier le "/" a la fin)
et voila !
Quelques commandes utiles
- Taper screen pour lancer un shell screen
- Ctrl-a c : cree un nouveau shell screen
- Ctrl-a 0 : Passe au shell numero 0
- Ctrl-a 1 : Passe au shell numero 1
- Ctrl-a ? : Voir les raccourcis