Como remover o bloqueio automaticamente depois de pressionar ctrl + z?

2

Por algum motivo nós terminamos a instalação do pacote via apt-get pressionando ctrl + z , ele cria um arquivo de bloqueio dentro dos diretórios /var/lib/dpkg/ e /var/cache/apt/archives/ .

E depois disso, se quisermos instalar outro ou mesmo pacote via apt-get , temos que remover manualmente o bloqueio executando esses dois comandos sudo rm /var/lib/dpkg/lock e sudo rm /var/cache/apt/archives/lock para que a instalação ocorra.

Minha pergunta : Existe alguma maneira de remover automaticamente os arquivos de bloqueio que foram criados depois de pressionar ctrl + z , para que não não é necessário remover os arquivos de bloqueio manualmente.

    
por Avinash Raj 03.01.2014 / 06:29

2 respostas

3

Não,

Porque não é possível para um programa capturar SIGSTOP (enviado por Ctrl + Z )

Para citar as partes relevantes de signal(7) :

Signal     Value     Action   Comment
───────────────────────────────────────────
SIGSTOP   17,19,23    Stop    Stop process

The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored.

Portanto, se você parar um programa com Ctrl + Z e fechar o terminal, ele não terá chance de executar a limpeza (por exemplo: removendo arquivos de bloqueio).
Ctrl + Z não deve ser usado se você pretende cancelar uma operação, somente usá-la se você pretende pausar um programa e continuá-lo (ou feche-o de forma limpa) mais tarde.

Assim, Ctrl + C deve ser usado para finalizar processos, porque um programa pode capturar esse sinal e sair corretamente.

Embora, no caso de apt-get , pressionar Ctrl + C deixará os arquivos de bloqueio para trás, mas terminará o processo. Isso significa que os arquivos de bloqueio podem ser removidos, mas o gerenciador de pacotes pode ser deixado em um estado inconsistente, se você o tiver finalizado em um ponto crítico.

Não há realmente nenhuma opção segura para finalizar apt-get de forma limpa enquanto estiver instalando / atualizando pacotes, mas o cancelamento (Ctrl-C, em seguida, remover os arquivos de bloqueio) durante o download deve ser bom.

    
por kiri 03.01.2014 / 06:52
1

Nunca elimine o bloqueio manualmente. ( Por quê? )

A melhor maneira é retomar o processo e não excluir o bloqueio. O bloqueio criado garante que nenhuma outra instância do apt seja executada ao mesmo tempo.

Ctrl + Z suspende um processo. Para trazê-lo de volta ao primeiro plano e continuar a execução, digite

fg

Isso permitirá que o apt continue o que estava fazendo e termine o processo. Para parar a execução do apt, você precisa eliminá-lo usando Ctrl + C . Isso também removerá o bloqueio.

Veja também:

por jobin 03.01.2014 / 06:36