Prozesse beenden
Im Allgemeinen gibt es für das Beenden eines Prozesses keinen sichereren Weg, einen Prozess zu beenden als mit einem regulären Kill (SIGTERM). Wenn es sich um einen interaktiven Vorgang handelt, können Sie ihn in der Regel noch sicherer stoppen, indem Sie ein SIGINT-Signal senden, das in der Regel durch Drücken von Ctrl+ gesendet wird C. Dieses Signal wird vom Prozess selbst abgefangen und kann es abhören - und normalerweise elegant stoppen. ( Danke Eliah )
DPKG-Datenbank
In Bezug auf die Paketverwaltung handelt es sich um eine Art Sonderfall. Die DPKG-Datenbank, die die APT-Befehle unter Wasser verwenden, kann immer erkennen, ob eine Operation noch nicht abgeschlossen ist. Jedes Paket hat einen aktuellen Status, der markiert ist, sowie einen aktuellen Status, z. B. entpackt, konfiguriert usw. Durch das Beenden des APT-Frontends befindet sich die Datenbank in einem fehlerhaften, aber bekannten Status. Die Sperrdateien werden erst freigegeben, wenn alles wieder sauber ist. Dies sollte behoben werden, bis neue Vorgänge möglich sind.
Die Lösung besteht darin, einen Prozess auszulösen, um alle Pakete in den konfigurierten Zustand zu versetzen. Wenn Sie einen apt-getVorgang unterbrochen haben, können Sie ihn praktisch später mit beenden
sudo dpkg --configure -a
Es weiß, wie es aus dem defekten Zustand in einen vollständig konfigurierten Zustand zurückkehrt und in diesem Sinne einfach dort fortfährt, wo es unterbrochen wurde. Die Sperrdateien werden dort belassen, bis Sie damit fertig sind, und das hat einen Grund - um neue Vorgänge mit der DPKG-Datenbank in einem unsauberen Zustand zu verhindern.
Über Sigkill (9)
Das Senden eines SIGKILL (Dezimaldarstellung 9) ist sehr unsicher. Dieses Signal wird vom Prozess nicht abgefangen, aber der gesamte Prozess wird vom Betriebssystem (Kernel) bereinigt, unabhängig davon, ob es dem Prozess gefällt oder nicht. Der Status der Dateien im Dateisystem kann beschädigt bleiben. Senden Sie diese Signale niemals, es sei denn, Sie hören andere, elegantere Signale nicht mehr.