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
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?
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
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.
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.