Como desconectar do lxc-console

41

Estou trabalhando com o lxc no Ubuntu 12.04, e é realmente ótimo. No entanto, não consigo me desconectar de uma lxc-consolesessão depois de me conectar. Eu li em algum lugar que Ctrl-aqme desconectará do console, mas ele não parece funcionar.

Devo estar executando lxc-consolevia screenem vez disso?

Robbyt
fonte
Eu tenho o mesmo problema. Se você iniciar um contêiner esquecendo o parâmetro "-d", não há saída. Ctrl aq não tem efeito. A única solução que encontrei é fazer login no console e executar o "sudo poweroff" que o tira do sério.
eos
você também pode fazer uma lxc-stopde outro shell
Martin Serrano

Respostas:

56

Sim, Ctrl-aqdeve funcionar por padrão, no entanto, lxc-consolenão , na verdade , não é usado screenpara realizar o comportamento do console. De fato, você pode encontrar um conflito se estiver usando a tela, pois ela também usa Ctrl-acomo prefixo. Se você está dentro, screenmas não percebe, precisará digitar, Ctrl-a a qjá que o comportamento padrão screené que você precisa digitar Ctrl-a apara realmente enviar ^apara o shell em execução dentro dele. Você pode alterar o prefixo para escape passando a opção -eou --escape=PREFIXpara lxc-console.

Além disso, parece que pode haver um erro, de lxc-startmodo que, se ele entrar imediatamente no modo de console, quando você iniciar o contêiner, não poderá usar Ctrl-a qpara escapar - na verdade, todos os caracteres de controle parecerão errados e serão impressos na tela. em vez de se comportar da maneira que você espera. Uma solução alternativa é executá-lo com a opção -dou --daemonpara que ele não inicie imediatamente um console e conectar-se a ele manualmente:

lxc-start -d -n container-name
lxc-console -n container-name
aculich
fonte
1
<kbd> Ctrl-a q </ kdb> não tem qualquer efeito sobre um console conectado com versão lxc 0.9.0
Jay Taylor
5
se os desenvolvedores lxc devem se perguntar por que o docker teve uma adoção bilhões de vezes maior, esse bug é um dos principais motivos.
Florian Heigl
1
@FlorianHeigl Embora eu concorde com a sua opinião sobre esse bug ser feio, as verdadeiras razões para isso são atitudes: bugs.debian.org/cgi-bin/bugreport.cgi?bug=768073 access.redhat.com/articles/1365153 acesso. redhat.com/discussions/2772171 (e inúmeras outras ocasiões em que o RedHat responde a "LX (C | D)?" com "Não, Docker!" (observe que esses são os principais resultados do Google para "LXD Debian" e "LXD Redhat consultas ").
Bojan Markovic 27/02
2

O que eu fiz para parar o contêiner

  1. Abra uma nova sessão.
  2. Faça o login como root.
  3. Verifique o status do contêiner.
  4. lxc-stop -n <name of the container>

Isso irá parar o contêiner.

Sreenivas
fonte
0

Ele não se conecta via screen? Ctrl-a ddeve tirar você disso.

A página Ubuntu LXC tem mais informações.

El Yobo
fonte
Não, isso não funciona. Eu tenho usado a tela para que eu possa desconectar do lxc-console. Além disso, o link que você postou não possui nenhuma informação sobre esse problema.
robbyt
"Desanexar tela: Ca d ou Ca Cd" - help.ubuntu.com/community/LXC#Mini_screen_how-to ; não sei o que fazer se não estiver funcionando.
El Yobo
1
@ElYobo Não, lxc-consolena verdade não usa screen, apenas possui um comportamento semelhante e, por padrão, na verdade, usa uma chave que entra em conflito com screena descrita aqui .
Aculich 16/10/12
0

Uma maneira alternativa de fazer login é simplesmente ssh <ip>começar a usar lxc-console. Você pode usar iniciá-lo como daemon usando lxc-start -d -n <name>e depois fazer login usando o console para obter o IP pela primeira vez.

Nishant
fonte
0

Eu tive um problema semelhante ao trabalhar com o meu Trusty LXC no Xenial-host e depois de iniciar o contêiner lxc-start -F -n CNnão consegui sair e voltar ao host quando desconectado do contêiner. Também o sudo lxc-ls -fno host travou e nenhum dos lxc-stopcomandos com as opções -k ou -W ou --no-lock funcionou, então eu acabei com -9 o processo do contêiner que funcionou, mas depois iniciou o contêiner com lxc-startou lxc-attachnão funciona corretamente , mas exibir erros sobre lxc_cgfsng e não encontrar o init pid etc.

Veja mais aqui: https://github.com/lxc/lxc/issues/1195

OpenITeX
fonte
-6

Quando você terminar de trabalhar com algum aplicativo, geralmente poderá encerrá-lo usando CTR + C. Se isso não funcionar, sempre há o comando quit: CTRL +.

CTRL + D, por outro lado, significa "FIM DO ARQUIVO" e geralmente funciona para impedir que algum programa leia o teclado. Você pode sair do shell regular com CTRL + D.

Ярослав Рахматуллин
fonte