Thread Problem mit fork()
(24 answers)
Opened by bianca at 2015-09-05 20:15
Danke für eure Antworten.
Habe 2 Testscripts gemacht: test_fork1.pl: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #!/usr/bin/perl use strict; use warnings; use File::Basename; use IO::Handle; STDOUT->autoflush(1); my $pid = fork(); # Fehler if (!defined $pid) { print time()." Fehler bei fork()\n"; } # Vater elsif ($pid) { print time()." Hier ist der Vater\n"; } # Sohn else { print time()." Sohn im Vaterscript terminiert jetzt\n"; close STDIN; close STDOUT; exec("perl ".dirname(__FILE__)."/test_fork2.pl"); exit(); } test_fork2.pl: Code (perl): (dl
)
1 2 3 4 5 6 7 8 #!/usr/bin/perl use strict; use warnings; use IO::Handle; STDERR->autoflush(1); print STDERR time()." Hier ist der Sohn, warte 5 Sekunden\n"; sleep(5); print STDERR time()." Sohn terminiert jetzt\n"; Dann auf beiden Servers jeweils über den Webserver (ist eine selbstgebaute Art Shell) aufgerufen und das erhalten: Ablauf auf dem Server mit Perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi wie erwartet:
Ablauf auf dem Server mit Perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi:
Was könnte der Grund für das Verhalten des unteren Servers sein? Editiert von bianca: use IO::Handle; STDOUT->autoflush(1); bei beiden ergänzt Last edited: 2015-09-08 08:09:56 +0200 (CEST) 10 print "Hallo"
20 goto 10 |