Mr Lamb,<br><br>no seu código ce tá criando socket tipo UNIX (arquivo), e no erro do log tá aparecendo socket tipo INET (TCP)... tá certo isso?<br><br>[]s,<br>Russian<br><br><div class="gmail_quote">2009/11/27 Andre Carneiro <span dir="ltr">&lt;<a href="mailto:andregarciacarneiro@gmail.com">andregarciacarneiro@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Salve pessoal!<br><br><br>Estou tendo um problema utilizando o módulo forks.<br><br>Enquanto eu não faço o &#39;daemonize&#39; no meu daemon, funciona tudo blz. No entanto, quando o &#39;daemonize&#39; acontece, tudo que é executado através de forks gera &quot;conexão recusada&quot; no socket. <br>


<br>&lt;code&gt;<br>.<br>.<br>.<br>use App::Daemon qw( daemonize );<br>use POSIX qw(:signal_h );<br>use Getopt::Long;<br>use IO::Socket::UNIX;<br><br>#DAEMON<br>    my $SOCKFILE    = &#39;/tmp/socktest&#39;;<br>    unlink $SOCKFILE or die $! if -e $SOCKFILE;<br>


    daemonize() if $daemonize == 1;<br>    my $usock = IO::Socket::UNIX-&gt;new(    Type     =&gt; SOCK_STREAM ,<br>                        Local    =&gt; &#39;/tmp/socktest&#39; ,<br>                        Listen    =&gt; 1<br>


                    ) or die $!;<br>    my $r = ();<br>    chmod 0777 , $SOCKFILE;<br>    my %Process;<br><br>    while(1){<br>        if(my ($r) = $usock-&gt;accept){<br>                       #c<br><br>        }else{<br>


              die &quot;\nSOCKET NAO FOI ACEITO!!! $! $@\n&quot;;<br>        }<br>    }<br><br><br>&lt;/code&gt;<br>#cliente<br>.<br>.<br>.<br>use IO::Socket::UNIX;<br>use Getopt::Std;<br>use Config::General;<br>use Data::Dumper;<br>


<br>my $conf_obj    = Config::General-&gt;new(&#39;config/general.conf&#39;);<br>my %config    = $conf_obj-&gt;getall();<br>my $SOCKETFILE     = &#39;/tmp/socktest&#39;;#$config{defaults}-&gt;{scap_socket}; <br><br>@ARGV &lt; 1 and die &quot;Parametros invalidos\n&quot;;<br>


<br>my $usock = new IO::Socket::UNIX(<br>    Type  =&gt; SOCK_STREAM,<br>    Peer =&gt; $SOCKETFILE,<br>) or die &quot;Impossivel abrir Socket: $! $@ em &quot; . $SOCKETFILE;<br><br><br><br>my %args;<br>getopts(&quot;r:s:p:&quot;, \%args);<br>


if($args{r}) {<br>    print &quot;Executar Spider $args{r} $args{p}\n&quot;;<br>    print $usock &quot;run $args{r} $args{p}&quot; or die $!;<br>}<br>elsif($args{s}) {<br>    print &quot;Parar Spider $args{s}\n&quot;;<br>


    print $usock &quot;stop $args{s}&quot;;<br>}<br><br><br>O cliente acima instancia uma classe que executa o seguinte trecho de código abaixo...<br><br><br>&lt;code&gt;<br>
.<br>.<br>.<br><br>use forks;<br>use MooseX::Singleton;<br>use Config::General;<br>.<br>.<br>.<br><br>foreach my $t(@{$thread}){ <br>                $self-&gt;log_spider-&gt;write(&quot;debug&quot;,&quot;Thread $i&quot;);<br>


                eval{$Threads[$i] = threads-&gt;create(&#39;init_thread&#39;,$self,$t,$cf)}; <br>                if($@){<br>                    $self-&gt;log_spider-&gt;write(&quot;error&quot;,&quot;Erro ao criar Thread $i: $@ $!&quot;);<br>


                    exit(0);<br><br>                }else {<br>                    $self-&gt;stat-&gt;dbic($conns-&gt;[$i]); #setando a conex?o do pool de conex?es.<br>                    $i++;<br>                }<br>            }<br>


            foreach my $t (1..$#Threads) {$Threads[$t]-&gt;join;}<br>.<br>.<br>.<br>.<br><br>sub init_thread {<br>    my ($self,$thread) = @_;<br>            #várias ações aqui...<br>            sleep 1;<br>}<br><br><br>


&lt;/code&gt;<br><br clear="all"><br><br>Quando a coisa toda é executada, o que ocorre é isso:<br><br><br>&lt;trecho do log&gt;<br><br><br>[Thu Nov 26 18:57:16 2009] [SCAP2] [debug] Thread 1<br>[Thu Nov 26 18:57:17 2009] [SCAP2] [error] Erro ao criar Thread 1:  (13981): Couldn&#39;t connect to query server: IO::Socket::INET: connect: Conex�o recusada at /usr/local/lib/perl/5.10.0/<a href="http://forks.pm" target="_blank">forks.pm</a> line 3592<br>


        threads::_croak(&#39;Couldn\&#39;t connect to query server: IO::Socket::INET: connect:...&#39;) called at /usr/local/lib/perl/5.10.0/<a href="http://forks.pm" target="_blank">forks.pm</a> line 2113<br>        threads::_init_thread(&#39;HASH(0x98d7f50)&#39;, &#39;&#39;, undef, undef) called at /usr/local/lib/perl/5.10.0/<a href="http://forks.pm" target="_blank">forks.pm</a> line 761<br>


        threads::new(&#39;threads&#39;, &#39;init_thread&#39;, &#39;Spider=HASH(0xaa1af10)&#39;, &#39;HASH(0xaa6e980)&#39;, &#39;HASH(0xa8fdc30)&#39;) called at /home/andre/git/scap/lib/Spider.pm line 264<br>        eval {...} called at /home/andre/git/scap/lib/Spider.pm line 264<br>


        Spider::load_sources(&#39;Spider=HASH(0xaa1af10)&#39;, &#39;ARRAY(0xaa6e920)&#39;, &#39;HASH(0xa8fdc30)&#39;, &#39;HASH(0xaa6e120)&#39;) called at /home/andre/git/scap/lib/Spider.pm line 123<br>        Spider::start(&#39;Spider=HASH(0xaa1af10)&#39;) called at ./scap2d line 251<br>


        main::run(&#39;ARRAY(0xa9e1bb8)&#39;, &#39;Spider=HASH(0xaa1af10)&#39;) called at ./scap2d line 148<br>        main::start(&#39;Getopt::Long::CallBack=HASH(0xa9f0650)&#39;, 1) called at /usr/share/perl/5.10/Getopt/Long.pm line 593<br>


        eval {...} called at /usr/share/perl/5.10/Getopt/Long.pm line 592<br>        Getopt::Long::GetOptionsFromArray(&#39;ARRAY(0x8c5c420)&#39;, &#39;start&#39;, &#39;CODE(0xa9de550)&#39;, &#39;stop&#39;, &#39;CODE(0xa9e21b8)&#39;, &#39;restart&#39;, &#39;CODE(0x90efa48)&#39;, &#39;help&#39;, &#39;CODE(0x90efa48)&#39;, ...) called at ./scap2d line 72<br>


 Conex�o recusada<br>[Thu Nov 26 18:57:17 2009] [SCAP2] [debug] Thread 2<br>[Thu Nov 26 18:57:17 2009] [SCAP2] [debug] Thread 3<br>[Thu Nov 26 18:57:17 2009] [SCAP2] [error] Erro ao criar Thread 2:  (13982): Couldn&#39;t connect to query server: IO::Socket::INET: connect: Conex�o recusada at /usr/local/lib/perl/5.10.0/<a href="http://forks.pm" target="_blank">forks.pm</a> line 3592<br>


        threads::_croak(&#39;Couldn\&#39;t connect to query server: IO::Socket::INET: connect:...&#39;) called at /usr/local/lib/perl/5.10.0/<a href="http://forks.pm" target="_blank">forks.pm</a> line 2113<br>        threads::_init_thread(&#39;HASH(0xad41528)&#39;, &#39;&#39;, undef, undef) called at /usr/local/lib/perl/5.10.0/<a href="http://forks.pm" target="_blank">forks.pm</a> line 761<br>


        threads::new(&#39;threads&#39;, &#39;init_thread&#39;, &#39;Spider=HASH(0xaa1af10)&#39;, &#39;HASH(0xaa6e910)&#39;, &#39;HASH(0xa8fdc30)&#39;) called at /home/andre/git/scap/lib/Spider.pm line 264<br>        eval {...} called at /home/andre/git/scap/lib/Spider.pm line 264<br>


        Spider::load_sources(&#39;Spider=HASH(0xaa1af10)&#39;, &#39;ARRAY(0xaa6e920)&#39;, &#39;HASH(0xa8fdc30)&#39;, &#39;HASH(0xaa6e120)&#39;) called at /home/andre/git/scap/lib/Spider.pm line 123<br>        Spider::start(&#39;Spider=HASH(0xaa1af10)&#39;) called at ./scap2d line 251<br>


        main::run(&#39;ARRAY(0xa9e1bb8)&#39;, &#39;Spider=HASH(0xaa1af10)&#39;) called at ./scap2d line 148<br>        main::start(&#39;Getopt::Long::CallBack=HASH(0xa9f0650)&#39;, 1) called at /usr/share/perl/5.10/Getopt/Long.pm line 593<br>


        eval {...} called at /usr/share/perl/5.10/Getopt/Long.pm line 592<br>        Getopt::Long::GetOptionsFromArray(&#39;ARRAY(0x8c5c420)&#39;, &#39;start&#39;, &#39;CODE(0xa9de550)&#39;, &#39;stop&#39;, &#39;CODE(0xa9e21b8)&#39;, &#39;restart&#39;, &#39;CODE(0x90efa48)&#39;, &#39;help&#39;, &#39;CODE(0x90efa48)&#39;, ...) called at ./scap2d line 72<br>


 Conex�o recusada<br><br><br><br>&lt;/trecho do log&gt;<br><br><br><br>Alguém já passou por isso?<br><br><br><br>Cheers!<br><font color="#888888"><br><br><br>-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br>

<br><br>
</font><br>_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>Alexei Znamensky [russoz_gmail_com] [<a href="http://russoz.wordpress.com">russoz.wordpress.com</a>] [<a href="http://www.flickr.com/photos/alexeiz">www.flickr.com/photos/alexeiz</a>]<br>

&quot;Though we live in trying times, we&#39;re the ones who have to try&quot;<br>