apt-get trava, esperando por pacotes adequados

1

Após várias tentativas de instalação do radiotray na versão Ubuntu Oneiric, outro usuário teve a dificuldade de fazer as configurações das fontes de software. Agora que eu quero realizar a instalação da bandeja de rádio novamente apt-get é pendurado aguardando os pacotes adequados para radiotray. Não é possível finalizar o processo no System Monitor.

Eu já fiz um logout e não o matei, provavelmente uma reinicialização fará isso. Existe outra maneira de impedir que apt-get seja executado quando está aguardando o download de pacotes?

    
por Stbn 14.01.2012 / 11:50

2 respostas

4

Primeiro, pegue o id do processo (pid) do apt-get que está rodando:

ps ax | grep apt-get

Em seguida, mate o processo pelo seu pid:

sudo kill -9 [pid]

Ou use htop , ele lista seus processos e permite que você envie uma variedade de sinais.

    
por steabert 14.01.2012 / 12:47
4

Mate precisamente

Encontre o ID do processo através do Monitor do Sistema, htop , usando ps , o que for (prefiro pgrep -l , veja abaixo). Vamos dizer que é 4536 desta vez. Então mate-o morto:

kill -9 4536

A abordagem de espingarda

pkill -9 apt-get

Isso matará todos os processos que de alguma forma corresponderem ao padrão "apt-get". Você não precisa procurar um número de processo. Isso corresponde a esses processos:

pgrep -l apt-get

A opção -l altera a saída apenas dos números de processo para números + nome. Isso é bom porque você pode verificar antes de explodir. Talvez quando você executar pkill -9 nuke acidentalmente mate o processo the-only-thing-preventing-nukelear-world-war .

Wtf é -9?

Normalmente, matar programas como kill e pkill colocam você na posição de Darth Vader lutando contra Obi Wan. Vader quer matar Ben, Ben reconhece o desejo de Vader, Ben graciosamente aceita a morte agora que sua tarefa está terminada. Isso é o mesmo que usar a opção -15 .

Mas às vezes os processos não querem morrer. Ou eles morrerão de bom grado, assim que terminarem de fazer isso. Mas você precisa que eles morram agora, não quando for conveniente para eles. Então você usa a opção -9 .

Por que continua pendurado?

  • Talvez algum outro processo esteja interferindo. Provavelmente seria algo chamado update, ou synaptic, ou apt, ou qualquer outra coisa nesse sentido. Mate todos estes, um por um, tentando novamente o seu comando apt-get após cada morte. Na pior das hipóteses, você mata um processo importante e precisa reinicializar. Não é tão ruim se você está sentado no sofá com o seu laptop Ubuntu, é uma droga se você está remotamente para um servidor em todo o país.

  • Talvez você tenha alterado suas fontes de atualização e o apt-get ainda não recebeu o memorando. Execute sudo apt-get update . Mas primeiro certifique-se de que não haja nenhum processo interferente.

Eu não tenho permissão para matar nada: |

Feijão resistente, se você não possui o sistema. Mas se você fizer isso, use sudo na frente de cada comando, assim: sudo pkill -9 process-i-hate . Eu intencionalmente não incluí os sudos para você porque você não deveria matar sem pensar em suas vítimas binárias.

Fontes

man kill
man grep
man pkill
man pgrep
man ps
    
por djeikyb 18.01.2012 / 21:49