Cada vez que tento atualizar meu Kali Linux executando
sudo apt update
Eu recebi a seguinte mensagem de erro
Unable to lock directory /var/lib/apt/lists/
A maneira de corrigir esse problema é encontrar processos executando
lsof /var/lib/dpkg/lock
lsof /var/lib/apt/lists/lock
lsof /var/cache/apt/archives/lock
e matando os processos que adquiriram os bloqueios.
Eu gostaria de automatizar o processo.
Responder1
A resposta para a pergunta que você deveria ter feito
Isso não é uma boa ideia. Você não deve eliminar processos cegamente. Descubra qual processo tem o arquivo bloqueado e por quê.
Além disso, se você tem esse problema com frequência, provavelmente está fazendo algo errado. Kali Linux é uma distribuição com propósito especial para testes de penetração. Não foi projetado para ser instalado.Para fazer qualquer coisa além de testes de penetração, não use Kali. Use uma distribuição normal como o Ubuntu.
Como encontrar um processo que possui um arquivo aberto em Python
Você pode usar opsutil
pacote para enumerar processos e enumerar os arquivos que eles abriram.https://stackoverflow.com/questions/20106220/check-for-open-files-with-python-in-linuxtem um exemplo de código.
Para enumerar apenas os processos que possuem um arquivo aberto, pode ser mais fácil analisar a saída defuser
.
import os, subprocess
try:
pids = subprocess.check_output(['fuser', '--', filename], stdout=open(os.devnull))
for pid in map(int, pids.split()):
print('Process {} has {} open'.format(pid, filename))
Responder2
Não foi possível bloquear o diretório /var/lib/apt/lists/
apt
provide apt-daily-upgrade.service
e apt-daily.service
services , quando habilitados apt
serão executados em segundo plano. versystemctl list-timers
para desativá-lo:
systemctl disable apt-daily.timer
systemctl disable apt-daily.service
systemctl disable apt-daily-upgrade.timer
systemctl disable apt-daily-upgrade.service
Debian:Atualizações autônomas