Existe um módulo python para lsof?

Existe um módulo python para lsof?

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 opsutilpacote 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/

aptprovide apt-daily-upgrade.servicee apt-daily.serviceservices , quando habilitados aptserã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

informação relacionada