Comment se déconnecter de lxc-console


41

Je travaille avec Lxc dans Ubuntu 12.04, et c'est vraiment génial. Cependant, je ne parviens pas à me déconnecter d'une lxc-consolesession après ma connexion. J'ai lu quelque part qui Ctrl-aqme déconnecte de la console mais cela ne semble pas fonctionner.

Devrais-je courir lxc-consolevia screen?


J'ai le même problème. Si vous démarrez un conteneur en oubliant le paramètre "-d", vous ne pouvez pas sortir. Ctrl aq n'a aucun effet. La seule solution que j'ai trouvée est de vous connecter à la console et de faire "sudo poweroff", ce qui vous permet de sortir.
eos

vous pouvez aussi faire une lxc-stopautre coquille
Martin Serrano

Réponses:


56

Oui, Ctrl-aqdevrait fonctionner par défaut, mais non, lxc-consolene l'utilise pas screenpour accomplir son comportement de console. En fait, vous pouvez rencontrer un conflit si vous utilisez screen car il utilise également Ctrl-aun préfixe. Si vous êtes à l'intérieur screenmais ne vous en rendez pas compte, vous devrez taper Ctrl-a a qcar le comportement par défaut screenest que vous devez taper Ctrl-a apour envoyer réellement ^aau shell qui tourne à l'intérieur. Vous pouvez modifier le préfixe pour une évasion en passant l' option -eou --escape=PREFIXà lxc-console.

En outre, il semble qu'il y ait un bogue dans le fichier. lxc-startAinsi, s'il passe immédiatement en mode console au démarrage du conteneur, vous ne pouvez pas l'utiliser Ctrl-a qpour vous échapper - en fait, tous les caractères de contrôle semblent être foirés et sont affichés à l'écran. au lieu de se comporter comme vous le souhaitez. Une solution de contournement consiste à l'exécuter avec l' option -dou de --daemonsorte à ne pas démarrer immédiatement une console et à s'y connecter à la main:

lxc-start -d -n container-name
lxc-console -n container-name

1
<kbd> Ctrl-a q </ kdb> n'a aucun effet sur une console connectée avec la version 0.9.0 de Lxc
Jay Taylor

5
si les développeurs de lxc devaient se demander pourquoi docker a été adopté un milliard de fois plus élevé, ce bogue est l’une des principales raisons.
Florian Heigl

1
@FlorianHeigl Bien que je sois d'accord avec votre sentiment que ce bogue est laid, les vraies raisons à cela sont les attitudes: bugs.debian.org/cgi-bin/bugreport.cgi?bug=768073 access.redhat.com/articles/1365153 access. redhat.com/discussions/2772171 (et de nombreuses autres occasions où RedHat répond à "LX (C | D)?" avec "No, Docker!" (notez que ce sont les meilleurs résultats de Google pour "LXD Debian" et "LXD Redhat requêtes ").
Bojan Markovic

2

Ce que j'ai fait pour arrêter le conteneur

  1. Ouvrir une nouvelle session.
  2. Connectez-vous en tant que root.
  3. Vérifiez l'état du conteneur.
  4. lxc-stop -n <name of the container>

Cela arrêtera le conteneur.


0

N'est-il pas connecté via screen? Ctrl-a ddevrait vous sortir de là.

La page Ubuntu LXC contient plus d’informations.


Non, ça ne marche pas. J'ai utilisé screen pour pouvoir me déconnecter de lxc-console. En outre, le lien que vous avez posté ne contient aucune information sur ce problème.
robbyt

"Détachez l'écran: Ca d ou Ca Cd" - help.ubuntu.com/community/LXC#Mini_screen_how-to ; Je ne sais pas quoi faire si ça ne marche pas.
El Yobo

1
@ElYobo Non, lxc-consolene l'utilise pas réellement screen, il a simplement un comportement similaire et utilise par défaut une clé en conflit avec screenles s, comme décrit ici .
Aculich

0

Une autre façon de vous connecter est de simplement utiliser votre ssh <ip>ordinateur lxc-console. Vous pouvez utiliser start it as daemon en utilisant lxc-start -d -n <name>puis vous connecter en utilisant console pour obtenir l’IP pour la première fois.


0

J'avais un problème similaire lorsque je travaillais avec mon Trusty LXC dans Xenial-host et qu'après le démarrage du conteneur avec lxc-start -F -n CNne pouvais pas sortir et revenir à l'hôte après avoir été déconnecté du conteneur. De plus, l' sudo lxc-ls -fhôte était suspendu et aucune des lxc-stopcommandes avec les options -k ou -W ou --no-lock ne fonctionnait. J'ai donc finalement éliminé -9 le processus conteneur qui fonctionnait, mais le démarrage du conteneur avec lxc-startou après lxc-attachne fonctionnant pas correctement , mais affiche des erreurs concernant lxc_cgfsng et ne trouve pas le pid init, etc.

Voir plus ici: https://github.com/lxc/lxc/issues/1195


-6

Lorsque vous avez fini de travailler avec certaines applications, vous pouvez généralement y mettre fin avec CTR + C. Si cela ne fait pas l'affaire, il y a toujours la commande quit: CTRL +.

CTRL + D, par contre, signifie "FIN DU FICHIER" et empêche généralement certains programmes de lire le clavier. Vous pouvez vous déconnecter d'un shell normal avec CTRL + D.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.