Y a-t-il une déconnexion de terminal qui fait quelque chose comme ce que fait GNU Screen?

8

Comme la plupart d'entre vous savent que GNU Screen est un bel outil qui vous permet de faire quelque chose comme:

Une autre bonne utilisation pour le détachement et le rattachement est une fonctionnalité de "bureau à distance" en mode console. Vous pouvez vous détacher d'une session d'écran au travail, lancer un shell dans la machine depuis votre domicile et le rattacher. Très, très pratique. Avec un peu de travail supplémentaire, vous pouvez même avoir un certain nombre de terminaux tous attachés à la même session - idéal pour les efforts de collaboration et les réunions.

Maintenant, je suis curieux de savoir comment faire cela sans écran. Aka au lieu de logut je tape magiclogout et la prochaine fois que je me connecte, j'obtiens mon ancienne session

NoSenseEtAl
la source

Réponses:

6

byobu est basé sur l'écran; il a une option de menu pour en faire votre shell par défaut.

Vous pouvez soit exitaussi normal alt-A, Dque vous le détacher comme vous le feriez avec un écran simple, et votre session attendra lorsque vous vous reconnecterez.

De plus, il ajoute un certain nombre de clés pour la gestion des terminaux, F2pour créer un nouveau terminal et F3et F4pour se déplacer entre les fenêtres, ainsi qu'une barre d'état avec un certain nombre d'indicateurs utiles comme les mises à jour de packages en suspens.

Il est installé par défaut sur les versions d'Ubuntu Server et devient rapidement mon terminal par défaut sur la plupart des serveurs que je gère.

Comme je l'ai dit, byobu dépend de l'écran pour fonctionner ... Je ne connais aucun moyen de reprendre une session autre que d'avoir un processus en cours d'exécution sur la machine cible.

Edit: byobu encapsulera également tmux (qui est la valeur par défaut sur les nouvelles versions d'Ubuntu). Vous n'avez rien à faire dans la plupart des cas - il utilisera simplement le multiplexeur de terminal par défaut.

Adrian
la source
2

vous voudrez peut-être jeter un œil à tmux

user8868
la source
1

Vous pourriez avoir quelque chose comme ça avec un logiciel de bureau à distance qui crée sa propre session, comme par exemple FreeNX sur le serveur et le client NoMachine sur le client.

Vous pouvez également l'utiliser avec le serveur et la machine cliente étant la même machine, afin de simuler ce que vous demandez.

enzotib
la source
1

Cela n'est pas possible sans utiliser l'écran, byobu (comme mentionné par Adrian) ou des outils similaires.

Un shell interactif doit être connecté à un tty. Si vous vous déconnectez, le shell perd la connexion au terminal et se ferme.

L'écran et les amis évitent cela en créant un ou plusieurs ttys virtuels persistants. Lorsque vous vous déconnectez, le shell reste connecté au terminal virtuel et ne remarque pas que l'utilisateur a été déconnecté.

Pour les programmes non interactifs, un tty n'est pas requis et au lieu d'écran, vous pouvez utiliser nohup.

Comme le souligne Adrian, il est possible d'utiliser byobu par défaut, et, comme vous le savez, de nombreux utilisateurs expérimentés ne commenceront screenque comme la toute première chose qu'ils feront après la connexion. Y a-t-il une raison précise, vous voulez éviter l'écran?

Jan
la source
Je considère que l'écran n'est pas pratique car je suis habitué au défilement et le mode copie est un peu irritant pour moi. De petites choses que je connais. :)
NoSenseEtAl
0

Vous pouvez démarrer une commande via nohup:

nohup command &

Si vous souhaitez enregistrer la sortie quelque part, faites

nohup command > output.txt &

Vous devez maintenant détacher le logiciel en cours d'exécution en

  1. en appuyant sur CTRL-Z
  2. entrer bg
  3. disown %1

Plus d'indications nohuppeuvent être trouvées dans sa page de manuel ( http://ss64.com/osx/nohup.html ), la même chose pour disown( http://ss64.com/osx/disown.html ).

Sascha Biermanns
la source