Processos de abate
De um modo geral, para matar um processo, não há maneira mais segura de matar um processo do que com um assassinato regular (SIGTERM). Caso seja um processo interativo, geralmente você pode pará-lo ainda mais com segurança enviando um sinal SIGINT, geralmente enviado pressionando Ctrl+ C. Este sinal está sendo capturado pelo próprio processo, pode ouvi-lo - e geralmente para normalmente. ( obrigado Eliah )
Banco de dados DPKG
Em relação ao gerenciamento de pacotes, é uma espécie de caso especial. O banco de dados DPKG que os comandos do APT usam debaixo d'água sempre pode detectar se uma operação não foi concluída. Todo pacote tem um estado real marcado e atual , por exemplo, descompactado, configurado etc. Ao eliminar o frontend do APT, o banco de dados estará em um estado quebrado, mas conhecido . Os arquivos de bloqueio serão liberados somente quando tudo voltar ao estado limpo - você deve consertar isso até que permita novas operações.
A maneira de corrigir é apenas disparar um processo para obter todos os pacotes no estado configurado. Na prática, se você interrompeu uma apt-getoperação, pode finalizá-la mais tarde usando
sudo dpkg --configure -a
Ele sabe como recuperar do estado quebrado para um estado totalmente configurado e, nesse sentido, apenas continuar de onde foi interrompido. Os arquivos de bloqueio são deixados lá até que você termine isso, e isso é por uma razão - para impedir novas operações com o banco de dados DPKG em um estado impuro.
Sobre a SIGKILL (9)
Enviar um SIGKILL (representação decimal 9) é muito inseguro. Esse sinal não é captado pelo processo, mas todo o processo será limpo pelo sistema operacional (kernel), quer o processo goste ou não. O estado dos arquivos no sistema de arquivos pode ser deixado em um estado corrompido. Nunca envie esses sinais, a menos que não esteja mais ouvindo outros sinais mais graciosos.