Consegui resolver! Veredicto: o cron é o culpado pelo assassinato dos meus processos. Fiz o meu programa se daemonizar; assim o crond perde toda a referência ao PID e o deixa rodar em paz:<br><br><span style="font-family: courier new,monospace;">if ($daemon) {</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">        if (fork) {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                exit;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">        } else {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                setsid;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">                if (fork) {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                        exit;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">                } else {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                        die &quot;Already running!&quot; if Proc::PID::File-&gt;running(dir =&gt; $RealBin, name =&gt; &#39;index&#39;);</span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                        open STDIN, &#39;&lt;&#39;, &#39;/dev/null&#39;;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">                        open STDOUT, &#39;&gt;&#39;, &quot;$RealBin/index.log&quot;;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">                        open STDERR, &#39;&gt;&#39;, &quot;$RealBin/index.log&quot;;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">                }</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">        }</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">} else {</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">        die &quot;Already running!&quot; if Proc::PID::File-&gt;running(dir =&gt; $RealBin, name =&gt; &#39;index&#39;);</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">}</span><br><br><div class="gmail_quote">Valeu pelas dicas!<br><br>2010/10/5 Fabio Adriano Soares <span dir="ltr">&lt;<a href="mailto:Fabio.Soares@tivit.com.br">Fabio.Soares@tivit.com.br</a>&gt;</span><br>

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








<div link="blue" vlink="purple" lang="PT-BR">

<div>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);">Tenho um script que falhava da mesma maneira (com mensagem de
Killed) porque faltava algumas variáveis de ambiente na hora da execução (o local
de umas libs do db2). Faz um teste imprimindo o ambiente do usuário na cron e
na console e compare.</span></p>

<p class="MsoNormal"><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>

<div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; padding: 3pt 0cm 0cm;">

<p class="MsoNormal"><b><span style="font-size: 10pt;">De:</span></b><span style="font-size: 10pt;">
saopaulo-pm-bounces+fabio.soares=<a href="http://tivit.com.br" target="_blank">tivit.com.br</a>@<a href="http://pm.org" target="_blank">pm.org</a>
[mailto:<a href="mailto:saopaulo-pm-bounces%2Bfabio.soares" target="_blank">saopaulo-pm-bounces+fabio.soares</a>=<a href="http://tivit.com.br" target="_blank">tivit.com.br</a>@<a href="http://pm.org" target="_blank">pm.org</a>] <b>Em nome de </b>Stanislaw
Pusep<br>
<b>Enviada em:</b> terça-feira, 5 de outubro de 2010 18:05<div class="im"><br>
<b>Para:</b> <a href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a><br>
<b>Assunto:</b> Re: [SP-pm] [OT] cron e os processos pesados</div></span></p>

</div>

<p class="MsoNormal"> </p>

<p class="MsoNormal" style="margin-bottom: 12pt;">Opa, juntando STDOUT e STDERR
consegui uma pista! O cron envia isso no meu email:</p><div><div></div><div class="h5"><br>
<br>
<span style="font-family: &quot;Courier New&quot;;">E: Some index files failed to download,
they have been ignored, or old ones used instead.<br>
Fetched 160kB in 1min30s (1761B/s)<br>
/bin/sh: line 1:  5909 Killed            
     iPhone/apt/</span><a href="http://index.pl/" target="_blank"><span style="font-family: &quot;Courier New&quot;;">index.pl</span></a><span style="font-family: &quot;Courier New&quot;;"> --skipwp 2&gt;&amp;1<br>
</span><br>
&quot;Killed&quot;, sem mais, nem menos. Neste ponto, o meu programa termina
uma fase, de coleta de dados a partir de uma série de .txt, e começa a outra, a
de atualização de uma tabela de 30 mil rows no MySQL.<br>
Se eu rodar só a fase 1 pelo cron, no final dela sempre dá um
&quot;Killed&quot;, entretanto tudo funciona OK, então chuto que o
&quot;Killed&quot; acontece no garbage collection.<br>
Rodando somente a fase 2 pelo cron, às vezes dá &quot;Killed&quot;, às vezes
não.<br>
Portanto, imagino que logo na entrada da fase 2 torra muita RAM (*não deveria*,
pois o processamento todo ocorre no MySQL). Se antes disso rodou a fase 1, a
RAM já está &quot;sujinha&quot;, então a chance do processo ser
&quot;Killed&quot; é elevada.<br>
Que seja. Ainda assim, não entendo pq q funciona perfeitamente em 100% dos
casos se eu rodar o processo manualmente, pelo terminal :(</div></div><div><div></div><div class="h5">

<div>

<p class="MsoNormal">2010/10/1 Stanislaw Pusep &lt;<a href="mailto:creaktive@gmail.com" target="_blank">creaktive@gmail.com</a>&gt;</p>

<p class="MsoNormal" style="margin-bottom: 12pt;">Basicamente, é isso: <a href="http://tinypaste.com/35fae" target="_blank">http://tinypaste.com/35fae</a></p>

<div>

<p class="MsoNormal">2010/10/1 Frederico Recsky &lt;<a href="mailto:listas@imovlr.com" target="_blank">listas@imovlr.com</a>&gt;</p>

<div>

<div>

<blockquote style="border-width: medium medium medium 1pt; border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color rgb(204, 204, 204); padding: 0cm 0cm 0cm 6pt; margin-left: 4.8pt; margin-right: 0cm;">



<p class="MsoNormal"> </p>

<p class="MsoNormal">Olá,<br>
<br>
2010/9/29 Stanislaw Pusep &lt;<a href="mailto:creaktive@gmail.com" target="_blank">creaktive@gmail.com</a>&gt;:</p>

<div>

<p class="MsoNormal" style="margin-bottom: 12pt;"><br>
&gt; variáveis do environment da shell interativa) no script &quot;/root/backup.sh&quot;.<br>
&gt; Se rodo pela shell, funciona. Pelo cron, não funciona. Aí coloquei no cron<br>
&gt; algo como &quot;ssh root@localhost /root/backup.sh&quot; (tendo definido
uma chave<br>
&gt; c/passphrase vazio previamente). E funcionou! O que poderia causar esse
tipo<br>
&gt; de problema, sem ser environment?!</p>

</div>

<p class="MsoNormal">Rola de voce colar esse backup.sh em algum canto?<br>
<br>
[]&#39;s<br>
<span style="color: rgb(136, 136, 136);"><br>
Frederico</span></p>

<div>

<div>

<p class="MsoNormal">_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">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></p>

</div>

</div>

</blockquote>

</div>

</div>

</div>

<p class="MsoNormal"> </p>

</div>

<p class="MsoNormal"> </p>

</div></div></div>

</div>


<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>