0

以下で構成される Perl スクリプトがあります。

 #!/usr/bin/perl
 # Script name: socket.pl

 # Build socket:
 use IO::Socket;
 my $sock = new IO::Socket::INET (
                                  PeerAddr => '74.74.74.74',
                                  PeerPort => '1543',
                                  Proto => 'tcp',
                                 )
 or die "Could not create socket: $@\n"; 

 # Make a pipe-delimited string out of the four arguments:
 $data = "$ARGV[0]$ARGV[1]|$ARGV[2]|$ARGV[3]|$ARGV[4]";

 # Write to socket and immediately close:
 print $sock "$data";
 close($sock);

スクリプトが何度も呼び出されると、問題が表面化し始めます。スクリプトが 1 分間に 60 回呼び出されるシナリオでは、pgrepもしsocket.pl. 彼らが書き込んでいるサーバーは $data、例外の空きソケットですぐに受信するように見えます。

ピアに表向きのエラーが見られないのに、ソケットに書き込んだように見えるにもかかわらず、このスクリプトが残っているのはなぜですか? インタープリターが動かなくなったり、なんらかの制約または制限に達したりしませんか (スクリプトは非常に機能的なボックスで実行されているため、システムの制限ではありません)。

ありがとう。

4

1 に答える 1