Hallo,

ich möchte von meinem Programm aus eine Anwendung starten, und diese dann bei Bedarf abbrechen können.
Also z.B. habe ich einmal mein Programm, das Eingaben vom Benutzer einliest, und einmal ein externes Programm, welches meinetwegen Daten von /dev/zero nach /tmp/nullen kopiert. Nun möchte ich bei meinem Programm vom Benutzer z.B. "los" eingeben lassen. Das externe Programm wird gestartet und kopiert schön. Wenn der Benutzer dann "stop" eingibt, soll das Programm wieder beendet werden.
So weit, so schön. Relativ einfach, Programm wird im Hintergrund gestartet ("/bin/programm &"), PID wird in einer Datei gespeichert, und wenn der Benutzer "stop" eingibt, wird die PID wieder ausgelesen und es gibt ein "kill PID".
Jetzt ist aber das Problem, dass der Benutzer auch "los 1000" eingeben können soll. Das Programm wird dann entweder beendet, wenn der Benutzer wieder "stop" eingibt, oder aber wenn 1000 Bytes (z.B.) kopiert wurden. Das mit "stop" ist ja schon geklärt, nur jetzt habe ich ein Problem:
Wie kann ich elegant (darauf kommts an ) herausfinden, dass ein Programm (welches im Hintergrund, also mit "&", ausgeführt wird) wieder beendet wurde? Klar kann ich in Abständen "ps" auswerten, aber das zähle ich nicht unbedingt zu elegant. Eine weitere Möglichkeit wäre das Erstellen und Löschen irgendwelcher Dateien, woran ich erkennen kann, ob das Programm läuft, aber das finde ich auch nicht wirklich schön.

Also, Ideen?

Danke schonmal