Conexão SSH perdida durante a atualização do servidor - Como reconectar ao processo?

32

Então, eu estava executando uma atualização do Ubuntu Server de 11.04 para 11.10.

Esqueci-me disso em segundo plano, e meu cliente SSH atingiu o tempo limite e desconectou-se (massa no Windows, vai entender). A última coisa no meu terminal foi uma questão de manter uma configuração antiga, etc.

Quando efetuei login novamente no servidor, os arquivos do aptitude foram bloqueados por outro processo, portanto, presumo que esse processo de atualização esteja lá aguardando minha entrada.

Como posso interagir com esse processo e continuar a atualização? Se possível.

obrigado

Stephen Melrose
fonte
11
possível duplicata de sessão ssh Reconnect quando desconectado sem tela
quanta

Respostas:

36

Na verdade, o processo é executado em uma tela ou sessão de byobu como usuário root. reconecte-se ao servidor com a massa na porta 22 ou com a proteção contra falhas 1022. sudo su - ou su - em sua conta root e retome a tela com byobu ou uma tela -r e retome aonde você saiu.

ah e sim, eu descobri da maneira mais difícil ;-)

user120896
fonte
11
Woah obrigado! Na verdade, eu estava executando uma atualização de versão de 11.10 para 12.04 no byobu e depois fechou quando o byobu foi atualizado, mas consegui me reconectar à sessão da tela raiz e assistir ao término da atualização! Eu quase tentei forçar a atualização, mas felizmente li essa resposta a tempo.
Ibrahim
3
Em uma instalação interrompida, dizia que a tela já estava conectada, então forço a tela a desconectar, para que eu possa reconectar. O comando é tela -D Informações a partir daqui: kb.iu.edu/data/ahrm.html
David
11
O uso screen -r <id>também funciona e você só precisa digitar alguns caracteres do ID para que ele funcione.
Daniel
11
Isso não funciona para mim, pois diz que screennão está instalado.
Starbeamrainbowlabs
11
Uso mais recente do Ubuntu sudo screen -D -rdepois sudo su -(se não for root).
bshea
34

Você não pode. Encontre o processo de atualização fazendo

lsof /var/lib/dpkg/lock

Mate-o, corrija quaisquer atualizações interrompidas com

dpkg --configure --pending

e reinicie a atualização.

Teddy
fonte
3
Isso é seguro com o processo sendo um do-release-upgrade?
Stephen Melrose
11
@StephenMelrose Nunca é seguro. Mas é razoavelmente seguro, e a única opção restante.
Teddy
2
melhor resposta entre muitos sobre como corrigir uma atualização do apt-get abortada pelo tempo limite da sessão de massa de vidraceiro ... testada com sucesso, obrigado!
219 Kojo
A and restart the upgradeetapa não está funcionando no meu caso (perdi a sessão ssh durante do-release-upgrade14.04 -> 16.04). O que eu faço como último passo para concluir a atualização da versão é sudo apt autoremovee então sudo shutdown -r now.
Ruslan Stelmachenko
Encontrei uma resposta mais completa aqui que eu segui a atualização automaticamente continuou de onde parou. askubuntu.com/questions/219545/...
lacostenycoder
4

O cryopid (encontrado através desta pergunta ) pode ajudar, a menos que o atual "processo único, não uma árvore de processos" seja um problema nesse caso.

Os arquivos podem estar bloqueados porque o processo foi morto sem cerimônia e não teve a chance de limpar depois de si próprio; portanto, confirme se o aptitude ainda está em execução. Use lsof /var/lib/dpkg/lockcomo sugerido na resposta de Teddy para verificar - isso lhe dirá o pid para tentar criopid também.

No futuro, recomendo tentar executar a tela sempre que possível. Eu criei o hábito de tela (ou byobu, que é um invólucro em torno da tela que define alguns comportamentos úteis), sendo a primeira coisa que eu corro quando SSHing para qualquer lugar, então posso reconectar se houver problemas. Você pode configurá-lo para iniciar ou recolocar automaticamente, embora eu nunca tenha feito isso em nenhum lugar - existem vários exemplos on-line ( por exemplo ), se você quiser tentar.

David Spillett
fonte
11
Aliás, eu tentei fazer isso e fiz uma atualização do-release sobre o ssh usando o byobu, mas quando o byobu foi atualizado, ele matou minha sessão! Gostaria de saber se o uso da tela diretamente teria impedido isso. Mas a outra resposta a esta pergunta respondeu à minha situação, parece que o instalador é inteligente e gere o seu próprio sessão de tela de qualquer maneira: D
Ibrahim