Come disconnettersi da lxc-console


41

Sto lavorando con lxc in Ubuntu 12.04 ed è davvero fantastico. Tuttavia, lxc-consoledopo la connessione non riesco a disconnettermi da una sessione. Ho letto da qualche parte che Ctrl-aqmi disconnetterà dalla console ma non sembra funzionare.

Dovrei correre lxc-consolevia screeninvece?


Ho lo stesso problema. Se si avvia un contenitore dimenticando il parametro "-d", non è possibile uscire. Ctrl aq non ha alcun effetto. L'unica soluzione che ho trovato è accedere alla console e fare "sudo poweroff", che ti fa uscire.
eos,

puoi anche fare un lxc-stopaltro da una shell
Martin Serrano,

Risposte:


56

Sì, Ctrl-aqdovrebbe funzionare per impostazione predefinita, tuttavia no, in lxc-consolerealtà non lo utilizza screenper eseguire il comportamento della console. In effetti, potresti riscontrare un conflitto se stai usando lo schermo poiché utilizza anche Ctrl-acome prefisso. Se sei dentro screenma non te ne rendi conto, dovrai digitare Ctrl-a a qpoiché il comportamento predefinito di screenè che devi digitare Ctrl-a aper inviare effettivamente ^aalla shell in esecuzione al suo interno. È possibile modificare il prefisso per la fuga passando l' opzione -eo --escape=PREFIXa lxc-console.

Inoltre, sembra che ci sia un bug in lxc-startmodo che se si passa immediatamente in modalità console quando si avvia il contenitore che non è possibile utilizzare Ctrl-a qper fuggire-- in effetti, tutti i personaggi di controllo sembrano essere rovinati e stampati sullo schermo invece di comportarti come ti aspetti. Una soluzione alternativa è eseguirlo con l' opzione -do in --daemonmodo che non avvii immediatamente una console e si connetta ad essa manualmente:

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

1
<kbd> Ctrl-a q </kdb> non ha alcun effetto su una console connessa con lxc versione 0.9.0
Jay Taylor,

5
se gli sviluppatori di lxc dovessero mai chiedersi perché la docker abbia avuto un'adozione miliardi di volte superiore, questo errore è uno dei motivi principali.
Florian Heigl,

1
@FlorianHeigl Mentre sono d'accordo con la tua opinione sul fatto che questo bug sia brutto, i veri motivi di ciò sono gli atteggiamenti: bugs.debian.org/cgi-bin/bugreport.cgi?bug=768073 access.redhat.com/articles/1365153 access. redhat.com/discussions/2772171 (e numerose altre occasioni in cui RedHat risponde a "LX (C | D)?" con "No, Docker!" (si noti che questi sono i principali risultati di Google per "LXD Debian" e "LXD Redhat query ").
Bojan Markovic,

2

Cosa ho fatto per fermare il container

  1. Apri una nuova sessione.
  2. Accedi come root.
  3. Controlla lo stato del contenitore.
  4. lxc-stop -n <name of the container>

Questo fermerà il contenitore.


0

Non si collega tramite screen? Ctrl-a ddovresti tirartene fuori.

La pagina Ubuntu LXC contiene ulteriori informazioni.


No, questo non funziona. Sto usando lo schermo in modo da potermi disconnettere da lxc-console. Inoltre, il link che hai pubblicato non contiene informazioni su questo problema.
Robbyt,

"Scollega schermo: Ca d o Ca Cd" - help.ubuntu.com/community/LXC#Mini_screen_how-to ; non so cosa fare se non funziona.
El Yobo,

1
@ElYobo No, lxc-consolenon utilizza effettivamente screen, ha solo un comportamento simile e per impostazione predefinita utilizza effettivamente una chiave in conflitto con screenquella descritta qui .
aculich,

0

Un modo alternativo per accedere è semplicemente ssh <ip>instabile nell'uso lxc-console. Puoi usarlo come demone usando lxc-start -d -n <name>e poi accedi usando la console per ottenere l'IP per la prima volta.


0

Ho avuto un problema simile quando ho lavorato con il mio Trusty LXC in Xenial-host e dopo aver avviato il contenitore con lxc-start -F -n CNnon è stato possibile uscire e tornare all'host quando si è disconnessi dal contenitore. Anche l' sudo lxc-ls -fhost è stato impiccato e nessuno dei lxc-stopcomandi con le opzioni -k o -W o --no-lock ha funzionato, quindi alla fine ho ucciso -9 il processo del contenitore che ha funzionato, ma in seguito ha avviato il contenitore con lxc-starto lxc-attachnon funziona correttamente , ma mostra errori su lxc_cgfsng e non trova init pid ecc.

Scopri di più qui: https://github.com/lxc/lxc/issues/1195


-6

Quando hai finito di lavorare con qualche applicazione, di solito puoi terminarla con CTR + C. Se ciò non risolve il problema, c'è sempre il comando quit: CTRL +.

CTRL + D, d'altra parte significa "FINE DEL FILE", e di solito funziona per impedire a qualche programma di leggere la tastiera. È possibile disconnettersi dalla shell normale con CTRL + D.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.