Chez ouam

/home/jmfrouin

View on GitHub
26 November 2013

Se détacher d'un shell ... screen & nohup

by Jean-Michel Frouin

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.

Lien original

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

Lien original

tags: