Comment fonctionne `screen`?

8

Je viens d'apprendre screenet c'est magnifique.

Quelques questions:

  1. Comment fonctionnent-ils réellement?
  2. Pourquoi les téléchargements / processus ne sont-ils pas interrompus sur les écrans même si quelque chose de grave s'est produit?
jsn alf
la source
Peut être utile: echo $TERMdans une session écran, les impressions screenpar opposition aux xtermsessions bash ordinaires.
forumulator

Réponses:

16

Très brièvement (il est possible d'écrire plusieurs pages sur le sujet): screen oeuvres de

  • mettre en place un processus serveur qui reprend toutes les entrées / sorties directement sur votre terminal,
  • démarrer les processus client pour chaque fenêtre que vous créez, et
  • connecter le serveur et les clients au démarrage à l'aide d'une connexion pseudo-terminale (une caractéristique du système d'exploitation).

Une fois qu'un client (fenêtre) est créé, il est isolé des autres clients. Il communique via la connexion pseudo-terminale au processus serveur, qui met à jour le terminal. Le serveur garde une trace de ce qui devrait être affiché sur le terminal dans une fenêtre donnée, vous offrant la possibilité de basculer entre les fenêtres. Les clients s'exécutent sans savoir s'ils screenaffichent actuellement leurs informations.

Thomas Dickey
la source
clair et rapide +1
aran