O pipe SSH quebrou durante a execução do upgrade. O que posso fazer sobre isso?

5

Eu estava conectado ao meu servidor aws debian wheezy e durante a execução de apt-get upgrade o pipe ssh quebrou. Não usei screen nem nada, então não acho que haja uma maneira de recuperar essa sessão.

Se eu me reconectar a uma nova sessão ssh e executar ps aux | grep apt , posso ver que apt e dpkg estão ainda em execução

Eles estão correndo há horas, na verdade. Não consigo imaginar que seria seguro matar esses processos, pois eles podem estar modificando libs / binários do sistema, mas o que posso fazer? E se eles estão esperando por entrada de teclado ou algo semelhante? Eu tinha dito y quando apt originalmente me pediu para instalar as atualizações, mas não sei se precisava de mais entrada do usuário. Eu planejo esperar mais algumas horas por dpkg e espero concluir o que eles estão fazendo .. mas se nada acontecer, quais são minhas opções?

    
por Felix Mc 20.09.2014 / 09:46

3 respostas

2

Acho que não há problema em enviar a eles um sinal SIGINT (interrupção do teclado, ou seja, Ctrl + C):

killall -SIGINT apt-get

ou

killall -2 apt-get

Você também pode tentar fazer isso duas ou mais vezes

    
por 20.09.2014 / 09:51
2

Você não pode recuperar a sessão. E assim você não pode fazer nada para interagir com esse processo.

Eu não acho que o processo esteja sendo executado. Eu acho que o apt-get pode ter se tornado um zumbi agora. De qualquer forma, você pode verificar o processo usando ps ou top . Se estiver funcionando, solte e monitore para terminar. Se ficar inativo, mate-o.

E então você pode simplesmente executar apt-get upgrade novamente depois de matar o processo, para concluir ou reparar qualquer pacote que está sendo atualizado enquanto a sessão falha.

    
por 20.09.2014 / 12:16
2

Você pode tentar reconecta a sessão com uma ferramenta como reptyr , mas isso nem sempre funciona.

Você pode matar apt , dpkg e seus subprocessos a qualquer momento. Todas as tarefas de manutenção de pacotes devem resistir a uma falha repentina de energia. Execute o comando novamente para concluí-lo.

Certifique-se de enviar um sinal SIGINT ou SIGTERM para o APT e dpkg, não para um SIGKILL. Um SIGKILL deixaria arquivos de bloqueio no lugar. Este é um princípio geral: não use o SIGKILL quando o SIGINT funcionasse.

    
por 22.09.2014 / 02:51