Um gewisse Dinge zu paralelisieren arbeite ich mit mehreren Scripten die wiederum externe Programme starten.
Script1 startet Script 2.
Script 2 startet ein nicht selbstgeschriebenes Programm.
Script 2 wartet auf das gestartete Programm.
Nun kommt in Script1 eine Stelle die es dem Benutzer erlaubt Script 2 per processclose zu beenden. Dies ist notwendig falls das von Script2 gestartete Programm fehlerhaft arbeitet.
Damit erreiche ich zwar, dass Script1 weiter arbeitet, jedoch läuft das von Script 2 gestartete Programm noch. Das führt dann zu Problemen wenn Script1 erneut ausgeführt werden soll.
Gibt es eine Möglichkeit alle Prozesse die von Script 2 gestartet wurden zeitgleich mit Script 2 zu beenden? (Also alle untergeordneten Prozesse)
Leider funktioniert processclose für das Programm aus Script1 heraus nicht, da der Name des gestarteten Programms nicht eindeutig (es existieren noch andere Instanzen die nicht beendet werden sollen) und eine PID nicht vorhanden ist, diese ist nur Script2 bekannt, welches ja bereits beendet wurde.
Welche Möglichkeiten habe ich in diesem Fall? Muss ich dafür sorgen dass Script2 die PID aller Unterprozesse an Script1 übermittelt oder gibt es bessere Möglichkeiten?