Às vezes, xargs
trabalho longo da noite para o dia e é realmente irritante descobrir pela manhã que xargs
morreu em algum lugar no meio, por exemplo, devido a uma falha de segmentação em um único caso especial, como aconteceu esta noite.
Se um xargs
filho for morto, ele não processa mais nenhuma entrada:
Console 1:
[09:35:48] % seq 40 | xargs -i --max-procs=4 bash -c 'sleep 10; date +"%H:%M:%S {}";'
xargs: bash: terminated by signal 15
09:35:58 3
09:35:58 4
09:35:58 2
<Exit with code 125>
Console 2:
[09:35:54] kill 5601
De alguma forma, posso impedir que xargs
pare para processar mais entradas depois que um processo filho morre e, em vez disso, continue processando?
xargs ... bash -c '...;exit 0'
ou mesmoxargs ... bash -c '... || echo erk'
parallel -j 1
é uma possível solução de invasão.
xargs
versão 4.4.2debian wheezy
e parece que tudo corre bem, mesmo se eu matar umsleep
processo específico . Qual versãoxargs
você está usando? pode ser que eles tenham corrigido o problema na versão mais recente.