Thread Net:Server crashed mit Backticks (`): evtl. fork Problem
(3 answers)
Opened by betterworld at 2003-10-08 16:45
Hi,
ich habe ein mittleres Problem mit Net::Server. Die Klasse ist an sich recht nett und ermöglicht es äußerst einfach einen Server zu programmieren. Leider crashed Perl sofort, wenn man versucht mit Hilfe von Backticks etwas auszuführen. Meine Beispielskripts sehen wie folgt aus ------------------------SERVER---------------------- use Net::Server::PreFork; use strict qw (@ISA); package MyServer; @ISA = qw(Net::Server::PreFork); MyServer->run ( proto => "unix", port => "/tmp/server_socket|unix", background => 1); sub process_request { print "Server: Hello before backtick\n"; my $help = `ls`; print "Server: received result: ".$help; return 1; } 1; -----------------client---------------------- use Socket; my $socket_name = "/tmp/server_socket"; socket(SOCK, PF_UNIX, SOCK_STREAM, 0) || die ("Cannot create new client socket ($socket_name)."); connect(SOCK, sockaddr_un($socket_name)) || die ("Server is not online or does not accept requests ($socket_name - ".sockaddr_un($socket_name)."). $?"); my $line; while (read (SOCK, $line, 1024)) { print "Client: $line\n"; } close SOCK; 1; --------------------ENDE des Codes------------------ Hat jemand eine Idee, was ich falsch mache? Ich habe es auch schon mit eigenem fork und exec probiert, statt die Backticks zu benutzen, aber damit ende ich auch in einem Crash. Benötigen die Backticks irgendwelche speziellen Rechte, die man mit fcntl prüfen kann? Grüße und Danke Micha |