Hallo Philipp,
use POSIX qw/setsid/;
warum brauche ich den Session Identifier?
Damit du den Child-Prozess aus der Prozess-Hierarchie herausloesen kannst.
- In der Doku hab ich nix gefunden, warum ich den explizit angeben muss.
Musst du nicht. Du kannst auch POSIX::setsid() schreiben -- nervt mich nur.
Ich importiere lieber explizit.
Kannst (oder wer anders) du es als fork/linux Experte erleutern?
Was hat das damit zu tun?
my $pid = fork;
unless($pid) {
die 'could not fork!' unless defined $pid;
# process is no longer a child
die 'could not remove session' unless setsid;
}
else {
# main process ends
exit 0;
}
Das kommt ja etwa auf das selbe raus, was ich getan hab, oder?
Nein, ich trickse nicht so rum mit den END-Block-Geschichten :)
Bist du dir sicher? - Das Problem mit exit(0) ist, dass der Prozess dann
eben weiterläuft und der Perlinterpreter die END-Blöcke _auch_ ausführt
Richtig, ja. Deshalb sollst du das ja auch nicht in die END- und
DESTROY-Bloecke packen. Wenn du das nicht *immer* bei *jedem* Script-Ende
ausfuehren willst, ist das eben das falsche Mittel.
Gruesse,
CK