screen, ou comment eviter de se faire killer une commande

La commande screen permet de lancer un bash, qui en cas de coupure réseau par exemple ne se killera pas mais se détachera et continuera à tourner en arrière plan.
Exemple concret d’utilisation :
– votre hébergeur coupe une session SSH « inactive » pendant 30 minutes, et vous avez un gros traitement à lancer, qui prend plusieurs heures, que vous voulez lancer de nuit
– vous ne voulez pas le lancer en cron pour une raison qui vous est chère
– vous ne voulez pas, toutes les 25 minutes, appuyer sur « entrée » pendant toute la nuit
-> alors il faut utiliser screen !

Utilisation (ma manière de l’utiliser)

Lancer un screen :
screen -S masession

Puis je lance mes commandes dedans :
emerge -av openoffice.org

Puis je quitte ma session, qui continuera à tourner en arrière plan :
Ctrl-a Ctrl-d (ce sont les touches par défaut)

Pour rejoindre plus tard ma session :
screen -r masession

Pour lister les screen en cours :
screen -ls

Pour terminer une session :
se logguer dedans puis « exit » (classique…)

Author: Pierre-Yves Dubreucq

Passioné par les logiciels libres depuis 2001, je suis responsable d'Odiso (hébergeur web spécialiste des infrastructures haute disponibilité e-commerce et en gestion de pics de trafic & webperf) je tiens ce blog depuis 9 ans avec beaucoup moins d'assiduité malheureusement qu'à ses débuts, car j'écris aussi sur MonSiteEstLent.com blog d'Odiso dédié à la webperf

Share This Post On

4 Comments

  1. Pour terminer une session :
    se logguer dedans puis « exit » (classique…)

    ou tout simplement et plus propremement, sans attacher la session (« se logguer »)
    pkill -f MaSession

    Post a Reply
  2. Je ne connaissais pas 🙂
    Merci pour l’info 😉

    Post a Reply
  3. Il y a aussi dans le même esprit la commande « nohup » qui permet de lancer un processus qui ne sera pas interrompu par la fermeture de la console, car son lancement devient indépendant de la console, et on peut suivre les sorties dans le fichier nohup.log créé par la commande 🙂

    Après, si on veut stopper le process, kill oblige.
    ps -aux|grep nom_du_process
    puis
    kill -9 pid_du_process (si c’est un processus sans fin par exemple).
    voilààà, on sait jamais ça peut dépanner!

    Post a Reply
  4. Bien le bonjour,
    Merci pour ce commentaire très pertinent 😉
    Je connaissais la méthode nohup, je l’utilise quand je fais de l’archéologie avec Unixware et que je sais que ma commande va être longue 😉
    Mais comme tu dis, ça peut dépanner 😉
    Bonne journée

    Post a Reply

Submit a Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.