Processos de matança
Em geral, por matar um processo, não há maneira mais segura de matar um processo do que com uma morte regular (SIGTERM). Caso seja um processo interativo, ele normalmente permite que você o pare ainda mais seguro enviando um sinal SIGINT, geralmente enviado pressionando Ctrl + C . Este sinal está sendo capturado pelo próprio processo can para ouvi-lo - e geralmente para de forma elegante. ( 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 APT usam debaixo d'água sempre pode detectar se uma operação não foi concluída. Cada pacote tem um estado real que está marcado, bem como um estado atual , por exemplo descompactado, configurado, etc. Ao matar o frontend do APT, o banco de dados estará em um estado quebrado, mas conhecido . Os arquivos de bloqueio só serão liberados quando tudo estiver de volta em um estado limpo - você deve consertar isso até que ele permita novas operações.
A maneira de corrigir é apenas disparar um processo para obter todos os pacotes no estado configurado. Praticamente falando, se você interrompeu uma operação apt-get
, você pode terminá-la mais tarde usando
sudo dpkg --configure -a
Ele sabe como se recuperar do estado quebrado para um estado totalmente configurado e, nesse sentido, apenas continue 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 que novas operações com o banco de dados DPKG fiquem sujas.
Sobre o SIGKILL (9)
Enviar um SIGKILL (representação decimal 9) é muito inseguro. Este sinal não é capturado 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 ouvindo outros sinais mais graciosos.