[Announce] New Plugin : bgprocess


  • Oder so, ich dachte eigentlich eher an eine sanfte Methode: Wählt der Nutzer für nen Task "abbrechen"merkt sich bgprocess das und gibts die Info "Task abgebrochen" das nächste mal (wenn de Task den Status aktualisiert) aus.


    SIGTERM ist "sanft" (habe das im letzten Posting verwechselt...). Der Prozess kann das Signal überschreiben um bei Auftreten beliebigen Code auszuführen. SIGKILL wäre "unsanft" und beendet den Prozess ohne das dieser darauf Einfluss nehmen kann.


    Natürlich kann man das gleiche auch anders erledigen, Feedback vom Plugin via SVDRP wäre auch eine Lösung. Wenn es aber um's Verwalten von Hintergrundprozessen geht, dann war ein Signal an den Prozess mein erster Gedanke. Dann kann man auch mal ein Programm dort registrieren, welches selber mit SVDRP nichts am Hut hat.


    Ein kleiner Nachteil besteht bei der "kill"-Methode schon: Wenn der VDR als "root" läuft, dann kann man über Umweg via SVDRP dann jeden beliebigen Prozess killen. Wenn der VDR als User läuft, hält sich das Risiko in Grenzen. Vorteil einer TERM/KILL-Lösung wäre dagegen, dass man sich aus dem OSD auch Hintergrundprozessen entledigen kann, die sich aufgehängt haben.

  • SIGTERM ist "sanft" (habe das im letzten Posting verwechselt...). Der Prozess kann das Signal überschreiben um bei Auftreten beliebigen Code auszuführen.


    Stimmt natürlich. Wobei das Programm auch nen VDR Plugin oder Code auf nem Server sein kann.


    IMHO Ideal wäre in der ersten Stufe eine Info die das Programm beim Statusaktualisieren erhält und in der zweiten ein Signal. Und in der 3. dann ein kill (weil dann hängst vermutlich). Ein genereller Timeout (Prozesse werden nach 10 Stunden generell gekillt) wäre IMHO auch nicht verkehrt.


    cu

  • Stimmt. Wenn man einen Server mit in's Spiel bringt, oder gar ein Plugin (wobei ich hier den Sinn nicht ganz sehe, aber warum nicht eine zentrale Stelle für Fortschrittsbalken ;) ), dann entfällt die Idee mit dem "kill". Ist aber auch kein großes Problem. Einigen wir uns einfach auf beliebige eindeutige ID und Feedback beim Versuch den Status zu setzen. Wenn "Abbruch" gewählt, dann sollte hier ein entsprechendes Feedback via SVDRP zurückkommen. Der Prozess muss sich dann noch ordentlich via "101" abmelden. Ansonsten würde ich den Eintrag stehen lassen, damit man hängende Prozesse noch sehen kann.


    Bei Server-Prozessen entfällt eigentlich auch das Delay für den Shutdown. Das macht nur Sinn, wenn von Localhost an Localhost verbunden wurde. Warum sollte der Server einen Client am Shutdown hindern müssen, um seinen Prozess zu beenden?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!