Bei Study anmelden

Diese Seite ist der öffentliche eMedys-Auftritt. Dein Konto und deine privaten Inhalte laufen auf Study; die Anmeldung öffnet sich dort in einem eigenen Fenster.

Prozessbesitz bis zum bestätigten Ende

Begrenze Laufzeit und Ausgabe und gib die Sperre erst nach abgeschlossener Schreibarbeit frei.

Ein Runner besitzt seinen gestarteten Kindprozess bis dessen bestätigtem Ende. Ein festes Programm mit einer geprüften Argumentliste macht den Auftrag eindeutig; Laufzeit und Ausgabemenge brauchen eigene Grenzen. Ein Timeout von Popen.wait() oder Popen.communicate() beendet das Kind nicht automatisch. subprocess.run() behandelt seinen Timeout anders und beendet das Kind mit anschließendem Warten. Der Fehlerpfad fordert Abbruch an, beendet gegebenenfalls, bestätigt das Ende und speichert das Ergebnis vor der Sperrfreigabe. Ist das Ende unbestätigt, darf kein neuer konkurrierender Schreiber freigegeben werden. Das direkte Kind ist zudem nicht automatisch dessen ganzer Prozessbaum. Harte Runner-Abbrüche benötigen einen Wiederanlauf- oder Supervisorvertrag; Aufräumcode hilft nur bei behandelten Ausstiegen.

Ein Beispiel

Fiktiver Adapter: export-17 überschreitet das Laufzeitlimit. Der Runner sendet stop_requested, erhält weiter running und simuliert danach terminate. Erst die Bestätigung ended erlaubt Ergebnis cancelled und release_lock. Falls das Programm nie gestartet wurde, gibt es keinen Kindprozess zu beenden; der Startfehler wird gespeichert. Falls Nachkommen erlaubt sind, muss deren Ende im eigenen Vertrag ebenfalls bestätigt werden.

Mit meinem Konto üben →

Alle Lernwege