Hi,

Moritz Karbach <mailinglist <at> karba.ch> writes:
> Wenn ich das child kille, indem ich vom parent aus `kill $pid`
> mache, lÃuft das externe binary weiter, nur das child stirbt.
> Daran Ãndert sich auch nichts, wenn ich nach exec "binary" ein
> "wait" einfÃge oder wenn ich statt exec system oder backticks
> benutze...

bist du dir sicher, dass du das externe Program auch mit exec()
gestartet hast? Denn: exec() *ersetzt* das aktuelle Programm (also
das Kind) durch dein externes Programm. Wenn du nun die PID deines
Childs abschieÃt, schieÃt du damit das externe Programm ab, da es
ja die PID des Childs Ãbernommen hat. Das Child, was du geforkt
hast, also einen Teil deines Perl-Programms, gibt es dann nicht mehr.

Anders ist das bei system() und Backticks: Dort lÃuft das Child
weiter, und das externe Programm ist ein eigener Prozess. Wenn du
dort dann die Kind-PID killst, lebt das externe Programm in der Tat
weiter.


-- Ingo

-- 
Linux, the choice of a GNU | Failure is not an option. It comes bundled 
generation on a dual AMD-  | with your Microsoft product.  
Athlon!                    | 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an