shell bash
Se détacher d'un shell ... screen & nohup
Posted by Jean-Michel Frouin on .screen c'est bien pratique pour détacher un shell où l'on s'est connecté en SSH, on le lance simplement grâce à la commande screen.
Cela fait longtemps que je devais faire une "cheat sheet" de cet outil, voila chose faite.
D'ailleurs en passant voici les raccourcis :
Bases
-ctrl a c -> créer une nouvelle fenêtre
-ctrl a A -> définir le nom de la fenêtre
-ctrl a w -> voir toutes les fenêtres
-ctrl a 1|2|3|... -> basculer vers la fenêtre N
-ctrl a " -> choisir la fenêtre
-ctrl a ctrl a -> basculer entre les fenêtres
-ctrl a d -> détacher la fenêtre
-ctrl a ? -> aide
-ctrl a [ -> commencer la copie, déplacer le curseur jusqu’où l'on veut copier, appuyer sur ENTREE, sélectionner des caractères, appuyer sur ENTREE pour copier les caractères sélectionnés dans le buffer
-ctrl a ] -> copier depuis le buffer
Comment démarrer un screen
-screen -DR -> lister les screen détachés
-screen -r PID -> se rattacher à une session détachée
-screen -dmS MySession -> démarrer une session détachée
-screen -r MySession -> s'attacher a une session en utilisant son nom
Avancés
-ctrl a S -> Spliter la session
-ctrl a TAB -> Basculer entre deux splits
Lorsque l'on créé un nouveau split, la fenêtre courante est vide, utiliser ctrl a " pour sélectionner une session existante ou ctrl a n pour en créer une nouvelle.
-ctrl a Q -> Tuer tous les splits sauf celui actif.
-ctrl a X -> Retirer la fenêtre active des splits.
-ctrl a O -> Se déconnecter de la fenêtre active.
-ctrl a I -> Se connecter dans la fenêtre active.
Et parfois screen n'est pas disponible, ou non fonctionnel :
Cannot open your terminal '/dev/pts/0' - please check.
Dans ce cas il faut revenir aux bases : nohup
nohup
On lance une commande insensible aux signaux SIGHUP avec :
nohup wget ftp://example.com/big.file &
Rendre une commande lancée insensible
On peut aussi rendre une process déjà lancé, insenssible au signal SIGHUP :
disown -h job
bash
bash peut automatiquement, rendre insensible les taches lancées en arrière plan avec:
shopt -u huponexit