Python 3 und Signale

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Python 3 und Signale

Beitrag von scientific » 15.04.2016 09:10:27

Hi Leute.

Ich entwickle gerade ein Snapshotprogramm für btrfs in Python 3.
Da ich gerne diese Sprache lernen möchte und dies am besten eines konkreten Problems kann... [emoji5]

Ich arbeite mit Klassen und das Programm funktioniert schon sehr gut.

Allerdings möchte ich noch eine Steuerung mittels Signalen implementieren. Dazu hab ich auch schon einiges gefunden und probiert...
Nur SIGTERM wird ignoriert. Egal was ich mache.

Konkret bei einem Aufruf von sys.path.exists auf ein nicht vorhandenes device mit aktiviertem automount an diesem Mountpunkt.
Konkret möchte ich bei Unterbrechung des Programms den Namen des aktuell bearbeiteten Snapshot in ein File schreiben.

Wo finde ich noch Infos dazu?
Die Beispiele die ich fand gaben mir keine Hilfe...

Lg Scientific

Gesendet von meinem GT-I8200 mit Tapatalk
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Python 3 und Signale

Beitrag von smutbert » 29.04.2016 11:25:41

Also, ich habe mich nur ein bißchen mit dem Abfangen von ^C gespielt, was aber afaik normalerweise zu SIGINT führt (ich komme mit den Signalen immer durcheinander). Jedenfalls habe ich damals das hier gefunden (speziell die Antwort, die mit "A class based clean to use solution:" beginnt)
http://stackoverflow.com/questions/1849 ... gracefully

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Python 3 und Signale

Beitrag von scientific » 01.05.2016 23:32:59

Ich habs jetzt anders gelöst... :)

Wenn ich einen Snapshot erstelle (auch rekursiv von Unterverzeichnissen), dann hänge ich beim obersten Snapshot ein ".part" an den Subvolume-Namen an.
Als allerletzte Aktion bei der Erstellung des Snapshots (Also wenn alle Subvolumes unterhalb erfolgreich erstellt wurden) gibts ein rename wo das ".part" entfernt wird.

Und bei jedem create eines Snapshots frage ich als allererstes nach Snapshots mit ".part" und lösche diese, bevor ich den neuen Snapshot erstelle oder übertrage.

Funktioniert bislang ganz gut.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten