<span style="font-family: courier new,monospace;">Cara, eu acho que você pode utilizar também o Linux::Inotify2. Este link (<a href="http://peter.makholm.net/2007/08/21/on-handling-email/">http://peter.makholm.net/2007/08/21/on-handling-email/
</a>) possue um exemplo interessante. <br><br>Abaixo tem um código meu mais simples ....<br><br>&lt;code&gt;<br>#!/usr/bin/perl<br>use Linux::Inotify2;<br><br>my $inotify = new Linux::Inotify2<br>&nbsp;&nbsp;&nbsp;&nbsp; or die &quot;Unable to create new inotify object: $!&quot;;
<br><br>$inotify-&gt;watch(&#39;/tmp/t.txt&#39;, IN_ALL_EVENTS) <br>&nbsp;&nbsp;&nbsp;&nbsp; or die &quot;Watch creation failed: $!&quot; ; # Take a look at the directory for file changes<br><br>while () { # Loop forever<br>&nbsp;&nbsp;&nbsp; my @events = $inotify-&gt;read;
<br>&nbsp;&nbsp;&nbsp; $e = shift(@events);<br>&nbsp;&nbsp;&nbsp; my $name = $e-&gt;fullname;<br>&nbsp;&nbsp;&nbsp; print &quot;$name was accessed\n&quot; if $e-&gt;IN_ACCESS;<br>&nbsp;&nbsp;&nbsp; print &quot;$name is no longer mounted\n&quot; if $e-&gt;IN_UNMOUNT;<br>&nbsp;&nbsp;&nbsp; print &quot;$name is gone\n&quot; if $e-&gt;IN_IGNORED;
<br>&nbsp;&nbsp;&nbsp; print &quot;$name is close from write\n&quot; if $e-&gt;IN_CLOSE_WRITE;<br>&nbsp;&nbsp;&nbsp; print &quot;$name is opened\n&quot; if $e-&gt;IN_OPEN;<br>&nbsp;&nbsp;&nbsp; print &quot;events for $name have been lost\n&quot; if $e-&gt;IN_Q_OVERFLOW;
<br>}<br>&lt;/code&gt;<br style="font-family: courier new,monospace;"></span><br><div><span class="gmail_quote">On 8/31/07, <b class="gmail_sendername">Flavio Bei</b> &lt;<a href="mailto:flaviobei@gmail.com">flaviobei@gmail.com
</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">opa Ednardo, blz?<br>eu não posso renomear ele antes de terminar, pois o processo pra
<br>renomear vai ser executado junto com uma mudança dop local do arquivo,<br>para ele ser processado por outro programa..<br>sei que parece uma zona, mas é um esquema que já funcionava aqui.,...<br>mas era manual..<br><br>
e hoje apareceu mais uma novidade, esse arquivo vai estar em uso por<br>um ftp, então preciso esperar o ftp acabar pra mecher nele...<br><br>to tentando o fuser, mas não ta resultando nada útil...<br><br>abraços<br><br>Em 30/08/07, Luciano Giordani Bassani&lt;
<a href="mailto:lgbassani@terra.com.br">lgbassani@terra.com.br</a>&gt; escreveu:<br>&gt; Eu não sabia deste pc -C &lt;nome_prog&gt;, mas aqui funcionou.<br>&gt; Em todo caso, se tu quiser mesmo utilizar o esquema com o grep, eu recomendo
<br>&gt; tu mudar para algo assim:<br>&gt; $teste = (`ps xa | grep $retorno\$ | grep -v grep`);<br>&gt;<br>&gt; Isso é para evitar que o próprio comando &quot;ps xa | grep&quot; gere um<br>&gt; &quot;falso-positivo&quot;.
<br>&gt;<br>&gt;<br>&gt; SDS,<br>&gt;<br>&gt; Luciano<br>&gt;<br>&gt;<br>&gt;<br>&gt; Fernando Oliveira escreveu:<br>&gt; pq, ao invez de usar 2 comando,&nbsp;&nbsp;não usa só o ps -C nome_prog???<br>&gt;<br>&gt; Em 30/08/07, Flavio Bei &lt;
<a href="mailto:flaviobei@gmail.com">flaviobei@gmail.com</a> &gt; escreveu:<br>&gt; &gt; consegui uma solução assim, deu certo, mas to com dúvidas... será que<br>&gt; &gt; o resultado será sempre preciso?<br>&gt; &gt;<br>
&gt; &gt; o código ficou + - assim<br>&gt; &gt;<br>&gt; &gt; ##########################################<br>&gt; &gt; #!/usr/bin/perl<br>&gt; &gt; # sistema que vai buscar em um diretório um determinado arquivo<br>&gt; &gt; # caso o arquivo não esteja em uso por nenhum processo ele é renomeado
<br>&gt; &gt; ##########################################<br>&gt; &gt;<br>&gt; &gt; use strict;<br>&gt; &gt; my $caminho = &quot;/home/user/pasta/&quot;;<br>&gt; &gt; my $extensao = &quot;*.txt&quot;;<br>&gt; &gt; my $completo = $caminho.$extensao;
<br>&gt; &gt; my @encontrados;<br>&gt; &gt; my $retorno;<br>&gt; &gt; my $lista;<br>&gt; &gt; my $teste;<br>&gt; &gt;<br>&gt; &gt; $lista = (`ls -1 $completo`);<br>&gt; &gt;<br>&gt; &gt; if ($lista ne &#39;&#39;)<br>&gt; &gt; {
<br>&gt; &gt; @encontrados = split(&#39;\n&#39;, $lista);<br>&gt; &gt; }<br>&gt; &gt;<br>&gt; &gt; foreach $retorno (@encontrados) {<br>&gt; &gt;<br>&gt; &gt; $teste = (`ps xa |grep $retorno\$`);<br>&gt; &gt;<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($teste eq &#39;&#39;)
<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #processa o arquivo pois ele não está em uso por nenhum processo<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print (&quot;=======&gt;&gt;&gt; Altera o arquivo $retorno pois não está em<br>&gt; uso\n&quot;);
<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; `mv $retorno $retorno.new`;<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #não processa o arquivo pois ele está em uso por algum processo<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print (&quot;========&gt;!!!! Não altera o arquivo $retorno\n&quot;);
<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt; &gt; }<br>&gt; &gt; ##############################################<br>&gt; &gt; deu certo, e está rodando de boa, dai joguei na cron e ele fica<br>&gt; &gt; verificando de tempos em tempos... mas não sei se é a sintaxe do ps,
<br>&gt; &gt; que tem hora que ele não mostra o&nbsp;&nbsp;processo sendo executado por outro<br>&gt; &gt; usuário, tem hora que mostra normal...<br>&gt; &gt; _______________________________________________<br>&gt; &gt; Cascavel-pm mailing list
<br>&gt; &gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; &gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>&gt; &gt;<br>&gt;<br>&gt;
<br>&gt;<br>&gt; --<br>&gt; []&#39;s Fernando ________________________________<br>&gt;<br>_______________________________________________<br>Cascavel-pm<br>&gt; mailing<br>&gt; list<br><a href="mailto:Cascavel-pm@pm.org">
Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>&gt;<br>&gt; _______________________________________________<br>&gt; Cascavel-pm mailing list
<br>&gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>&gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>&gt;<br><br><br>--<br>--<br>Flávio Bei
<br>Webdesigner<br>(11) 8964 5315<br>_______________________________________________<br>Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></div><br><br clear="all"><br>-- <br>&quot;o animal satisfeito dorme&quot;. - Guimarães Rosa