<div dir="ltr"><div>Veja só. quando vc mandou o primeiro SIGINT, a execução do codigo foi desviada para a função anonima contida em $SIG{INT}, entretanto como vc sabe que tem que "voltar" para aonde vc estava? não sabe.</div>

<div><br></div><div>veja este exemplo:</div><div><br></div><div>my $c = 0; $SIG{INT} = sub { print "$c\n"; $c++;};</div><div><br></div><div>do {</div><div><br></div><div>eval { print "$c inicio...\n"; sleep 5 ; print "... done\n"; };</div>

<div><br></div><div>} while ($c < 3); </div><div><br></div><div>o codigo mesmo esta entre eval { ... } entretanto que sabe se deve continuar ou não é o codigo externo, o while.</div><div><br></div><div>vc nao pode simplesmente mandar 3 SIGINT e achar que o seu script vai saber lidar com isso. vc vai PARAR a execução pra executar o bloco associado aquele trap.</div>

<div><br></div><div>agora se vc quer parar o seu programa depois de 3 ctrl+c, faça o seu script criar um FORK, rodar o que precisa no processo filho e no processo pai vc controla este estado, depois do terceiro SIGINT vc pode matar o processo, por exemplo.</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/11/25 Renato Santos <span dir="ltr"><<a href="mailto:renato.cron@gmail.com" target="_blank">renato.cron@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><pre style="max-height:600px;width:auto;background-color:rgb(238,238,238);margin-bottom:10px;padding:5px 5px 5px 10px;vertical-align:baseline;line-height:18px;border-left-color:rgb(204,204,204);border-left-style:solid;font-size:14px;overflow:auto;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif;word-wrap:normal;margin-top:0px;border-width:0px 0px 0px 5px">


<code style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif"> SIGINT        2       Term    Interrupt from keyboard
</code></pre><div><code style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif"><br>




</code></div><div><code style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif">Esse é o CTRL+C,</code></div>




<div><code style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif"><br>




</code></div><div><code style="margin:0px;padding:0px;border:0px;vertical-align:baseline"><font face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif">$SIG{INT} = 'IGNORE';</font><br>




</code></div><div><code style="margin:0px;padding:0px;border:0px;vertical-align:baseline"><font face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif"><br>




</font></code></div><div><font face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif">não consegui fazer assim:</font></div><div><font face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif"><br>



my $c = 0; $SIG{INT} = sub { return 'IGNORE' if $c++ < 3 };<br></font></div><div><font face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif"><br>



</font></div><div><font face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif">não sei porque, alguem sabe?</font></div><div><div class="h5">

<div class="gmail_extra">


<br><br><div class="gmail_quote">2013/11/25 Andre Luis <span dir="ltr"><<a href="mailto:alpbs2003@gmail.com" target="_blank">alpbs2003@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">




<div dir="ltr">nesse caso só iria ignorar ele nao irira tratar ... pelo que eu entendi ele quer tratar <br><br><br><a name="1429080b4148669f_142907eca8cdbaa1_142907b70d141155_1429071cac0b10b5_INDEX-789" style="font-size:medium;font-family:'Times New Roman'"></a><pre style="white-space:pre-wrap;word-wrap:break-word;border:1px dashed rgb(211,211,211);padding:7px;background-color:rgb(250,250,250)">


<a name="1429080b4148669f_142907eca8cdbaa1_142907b70d141155_1429071cac0b10b5_INDEX-789" style="font-size:medium;font-family:'Times New Roman'"></a><a name="1429080b4148669f_142907eca8cdbaa1_142907b70d141155_1429071cac0b10b5_INDEX-789" style="font-size:medium;font-family:'Times New Roman'"><pre style="white-space:pre-wrap;word-wrap:break-word;border:1px dashed rgb(211,211,211);padding:7px;background-color:rgb(250,250,250)">


$SIG{KILL} = sub {  do_something() }; <br> <br></pre></a></pre><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">Em 25 de novembro de 2013 16:06, Renato Santos <span dir="ltr"><<a href="mailto:renato.cron@gmail.com" target="_blank">renato.cron@gmail.com</a>></span> escreveu:<div>




<div><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">você tem que ignorar o sinal de KILL do sistema.<div>



<br></div><div><br><div>para saber mais sobre os sinais, <a href="http://perldoc.perl.org/perlipc.html" target="_blank">http://perldoc.perl.org/perlipc.html</a></div>

</div>

<div><br></div><div>algo para ignorar pra sempre,</div><div><a name="1429080b4148669f_142907eca8cdbaa1_142907b70d141155_1429071cac0b10b5_INDEX-789" style="font-size:medium;font-family:'Times New Roman'"><blockquote>

<pre style="white-space:pre-wrap;word-wrap:break-word;border:1px dashed rgb(211,211,211);padding:7px;background-color:rgb(250,250,250)">
$SIG{KILL} = 'IGNORE';</pre></blockquote></a></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/11/25 Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span><br>







<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div>


<div><div dir="ltr">Boa tarde,<div>Monges.</div><div><br></div><div>Gostaria de saber se existe a possibilidade de eu controlar comandos do sistema?</div><div><br></div><div>Bom, quando estamos executando algum script, se eu quiser encerra-lo a qualquer momento basta que eu tecle Ctrl + C.</div>







<div>Mas e se eu quisesse, especificamente em um script, determinar que seu encerramento fosse após apertar 3 vezes consecutivas Ctrl + C, ou então ao apertar Ctrl + shift + C, ou sei lá, qualquer outro comando que eu queira, como deveria fazer?</div>







<div><br></div><div>Desde já grato.</div><div><br></div><div>Att,</div><div>Aureliano Guedes</div>                                        </div></div>
<br></div></div>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><span><font color="#888888"><br></font></span></blockquote></div><span><font color="#888888"><br>
<br clear="all"><div><br></div>-- <br><div><span style="color:rgb(51,51,51);font-size:x-small">Saravá,</span></div>

<div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div><div><div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div>







</div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div>
</font></span></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div></div></div><span><font color="#888888"><br><br clear="all"><br>-- <br>
<span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:left;font-style:normal;font-weight:normal;float:none;line-height:normal;color:rgb(34,34,34);text-transform:none;font-size:13px;white-space:normal;font-family:arial,sans-serif;word-spacing:0px;display:inline!important">"technology does not drive change - it enables change"</span>
</font></span></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><span style="color:rgb(51,51,51);font-size:x-small">Saravá,</span></div>




<div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div><div><div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div>




</div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div>
</div></div></div></div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Tiago B. Peczenyj<br>Linux User #405772<br>

<br><a href="http://about.me/peczenyj" target="_blank">http://about.me/peczenyj</a>
</div>