Forum Astuces.divers [Terminal] Lancer plusieurs programmes dans un seul terminal

Posté par  (site web personnel) .
Étiquettes : aucune
0
1
juin
2001
Si vous êtes connecté à une machine distante, ou même sur une console en mode texte, un logiciel très utile s'appelle screen.
Tapez screen pour le lancer, puis screen commande pour lancer cette commande dans un nouveau terminal virtuel. ^A-c crée un nouvel écran aussi, et ^A numéro bascule de l'un à l'autre.
Encore plus fort : ^A-d suspend toute la session, vous pouvez vous déloguer et la retrouver plus tard avec screen -r.
  • # Méthode barbare

    Posté par  . Évalué à 1.

    Si on ne possède pas screen et que l'on ne désire pas l'installer pour faire une petit manip, on peut jouer avec CTRL+Z, fg, bg et jobs.

    ctrl+z interrompt le programme et revient au shell
    bg poursuit son exécution en arrière plan (background)
    fg poursuit son exécution au premier plan (foreground)

    Si on lance plusieur programmes, on peut utiliser 'fg' et 'bg' avec un paramètre qui est le numéro du "job" listé par la commande 'jobs'.
    • [^] # Re: Méthode barbare

      Posté par  . Évalué à 2.

      Mouai ... mais surtout il faut nohup pour que les programmes continuent de tourner quand on quitte le shell !

      Enfin, le seul problème est que la sortie standard est redirigée et que y a pas d'entrée standard (à moins de faire un pipe ...). Mais si c'est pour faire tourner un programme après qu'on soit déloggué, ça devrait pas être très génant !
    • [^] # Re: Méthode barbare

      Posté par  . Évalué à 1.

      Pour éviter cette méthode barbard qu'est le CTRL-Z puis "fg", je vous propose simplement d'ajouter un "&" à la fin de la commande : Exemple : macommande & En effet, le "&" dit au shell de lancer la commande en tâche de fond. En pratique, le shell n'attend pas que son fork-exec ait terminé pour reprendre le contrôle du clavier. Attention : le & est simple, car && signifie "ET" pour lancer une seconde commande uniquement dans le cas où la première a réussi.
  • # Re: Lancer plusieurs programmes dans un seul terminal

    Posté par  . Évalué à 1.

    screen c'est en effet trop fort, surtout si on est dans un environnement sans KDE et sa konsole...
    Moi quand je suis sous CDE sous Solaris, je l'utilise a fond. Mais je ne fait jamais de C-a car ca m'enleve le "debut de ligne".
    J'ai un fichier .screenrc dans mon home qui contient:
    defescape ^w^w
    escape ^w^w
    (oui, oui, il y a bien 2 lignes). Ca remplace la sequence C-a qui est utilisee pour taper une commande screen par C-w ... Ainsi on garde le C-a pour aller en debut de ligne.
    Enfin, pour donner un titre a chacun des shell: C-w A
    Pour les lister tous: C-w w
    Pour passer au shell suivant: C-w SPACE (ou C-w n)
    Pour passer au shell precedent: C-w p
    Pour creer un shell : C-w c
    Pour detacher: C-w z
    Pour re-attacher: fg
    Pour lister les sessions screen en cours (en cas de rlogin): screen -ls

    bref, que du bonheur....
  • # Indispensable quand on bosse sur plusieurs machines !

    Posté par  . Évalué à 1.

    Vraiment, je ne peux plus me passer de screen : je l'utilise pour garder mes clients ouverts sur ma passerelle et récupérer la session entre le boulot et la maison. On y trouve le classique client IRC (irssi r3wlz !), centericq pour l'IM, et mon bon vieux slrn.

    Par contre, je serais vraiment intéressé par un équivalent qui gère les applis graphiques, si ça existe.
  • # c'est pas trop tôt

    Posté par  . Évalué à 1.

    si j'avais su...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.