Hi,

Frank KÃster <frank <at> debian.org> writes:
> Normalerweise sterben Kinder mit; aber wenn sie hÃngen, dann hilft
> mÃglicherweise kill -15 nicht, und dann bleibt er Ãbrig. 

dieses "normalerweise" ist nicht ganz so selbstverstÃndlich. Oftmals
kommunizieren  Child und Parent Ãber Pipes. Wird dann der Parent abgeschossen,
schlieÃt sich auch die Pipe, das Kind erhÃlt ein SIGPIPE-Signal und stirbt 
dann
auch, es sei denn, er fÃngt SIGPIPE ab.

Findet aber keine solche Kommunikation statt, lebt der Kindprozess weiter,
allerdings wird er nun zum Kind von Prozess Nr. 1, init.

Wenn du ein wenig von Perl verstehst, hier ein Beispiel:

$ cat <<EOF > /tmp/fork.pl
#!/usr/bin/perl
use warnings; use strict;

# Hier gibt es noch nur einen Prozess, den zukÃnfigen Vater.
# In dem wir fork()en, wird der Kind-Prozess als Klon des Vaters erzeugt:
my $child_pid = fork;
if($child_pid) {
  # Der Vater erhÃhlt als RÃckgabewert von fork() die PID des Childs.
  print "Parent (PID: $$) gestartet, Child-PID ist $child_pid.\n";
} else {
  # Das Kind erhÃlt als RÃckgabewert 0.
  print "Child (PID: $$) gestartet.\n";
}

# Hierhin kommen beide Prozesse, welche nun 20s warten.
sleep 20;

# Und jetzt beenden sich beide, und zeigen ihre PID ($$) an.
print "Prozess $$ beendet sich.\n";
EOF

$ /tmp/fork.pl &
$ ps axf | grep fork.pl
(Du wirst den Parent und sein Kind sehen.)
$ kill <Parent-PID>
$ ps axf | grep fork.pl
(Du wirst nur noch das Kind sehen, dessen Vater aber nun init ist.)
(Die zwanzig Sekunden Wartezeit sind vorbei:)
Prozess <Child-PID> beendet sich.


-- 
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