Thread so lange eine Funktion ausführen bis fork beendet. (9 answers)
Opened by quetzalcoatl at 2004-04-03 17:36

quetzalcoatl
 2004-04-05 14:51
#81443 #81443
User since
2004-04-01
51 Artikel
BenutzerIn
[default_avatar]
jetzt hab ich leider ein anderes - daraus resultirendes Problem.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
$retval = fork();
if ($retval == -1) {
   die "fork() failed: $!\n";
} elsif ($retval == 0) {
   exec("$find / -type f > tmp.txt 2>&1") || die "Error\n";
} else {
    while(!waitpid ($retval, WNOHANG)) {
    if ( $percent_done == 150) { $percent_done=0 } else { $percent_done++; $toplw->update(); sleep 1; }
    }
}

bei mir gings nur mit "exec", das Problem ist aber nur - wenn der Benutzer nun auf abbrechen klickt - dann tötet er zwar sich, aber nicht den "exec" Child - sprich: meine find suche läuft noch weiter.

Hab schon versucht die pid während des forks in eine Datei zu schreiben - diese beim Abbrechen Button auszulesen und die darin enthaltene PID zu töten. Funktioniert auch - aber zwischendurch stand da mal "0" drinnen - und den möchte ich nicht killen ;)

Daher: gibt es eine einfach möglichkeit, um so einen "exec" Prozess wieder zu töten?

Gruss,
quetzal

View full thread so lange eine Funktion ausführen bis fork beendet.