Gibt es ein Python-Modul für lsof?

Gibt es ein Python-Modul für lsof?

Jedes Mal, wenn ich versuche, mein Kali Linux zu aktualisieren, indem ich

sudo apt update

Ich erhalte die folgende Fehlermeldung

Unable to lock directory /var/lib/apt/lists/

Ich behebe dieses Problem, indem ich Prozesse suche, indem ich sie ausführe

lsof /var/lib/dpkg/lock
lsof /var/lib/apt/lists/lock
lsof /var/cache/apt/archives/lock

und Beenden der Prozesse, die die Sperren erworben haben.

Ich möchte den Vorgang automatisieren.

Antwort1

Die Antwort auf die Frage, die Sie hätten stellen sollen

Das ist keine gute Idee. Sie sollten Prozesse nicht blind beenden. Finden Sie heraus, welcher Prozess die Datei gesperrt hat und warum.

Wenn dieses Problem außerdem häufig auftritt, machen Sie wahrscheinlich etwas falsch. Kali Linux ist eine Spezialdistribution für Penetrationstests. Sie ist nicht für die Installation vorgesehen.Für andere Zwecke als Penetrationstests verwenden Sie Kali nicht.. Verwenden Sie eine normale Distribution wie Ubuntu.

So finden Sie einen Prozess, bei dem in Python eine Datei geöffnet ist

Du kannst den ... benutzenpsutilPaket zum Aufzählen von Prozessen und Aufzählen der von ihnen geöffneten Dateien.https://stackoverflow.com/questions/20106220/check-for-open-files-with-python-in-linuxhat ein Codebeispiel.

Um nur Prozesse aufzuzählen, die eine Datei geöffnet haben, ist es möglicherweise einfacher, die Ausgabe vonfuser.

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))

Antwort2

Verzeichnis /var/lib/apt/lists/ kann nicht gesperrt werden

aptBereitstellung apt-daily-upgrade.serviceund apt-daily.serviceDienste, wenn aktiviert, aptwerden sie im Hintergrund ausgeführt. Siehesystemctl list-timers

um es zu deaktivieren:

systemctl disable apt-daily.timer
systemctl disable apt-daily.service
systemctl disable apt-daily-upgrade.timer
systemctl disable apt-daily-upgrade.service

Debian:Unbeaufsichtigte Upgrades

verwandte Informationen