A volte svolgo lunghi xargs
lavori durante la notte ed è davvero fastidioso scoprire al mattino che è xargs
morto da qualche parte nel mezzo, ad esempio a causa di un errore di segmentazione in un singolo caso speciale, come è successo questa notte.
Se anche un xargs
bambino viene ucciso, non elabora più input:
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
Posso in qualche modo impedire xargs
di interrompere l'elaborazione di ulteriori input una volta che un processo figlio è morto e invece continuare l'elaborazione?
xargs ... bash -c '...;exit 0'
o addiritturaxargs ... bash -c '... || echo erk'
parallel -j 1
è una possibile soluzione di hacking.
xargs
versione 4.4.2 indebian wheezy
e sembra che tutto vada bene anche se uccido unsleep
processo specifico . Quale versione dixargs
stai usando? potrebbe essere che hanno risolto il problema nell'ultima versione.