Saya kadang-kadang menjalankan xargspekerjaan panjang dalam semalam dan sangat menjengkelkan untuk menemukan di pagi hari yang xargsmeninggal di suatu tempat di tengah, misalnya karena kesalahan segmentasi dalam satu kasus khusus, seperti yang terjadi malam ini.
Jika bahkan satu xargsanak terbunuh, itu tidak memproses input lagi:
Konsol 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>
Konsol 2:
[09:35:54] kill 5601
Dapatkah saya mencegah xargsberhenti memproses input lagi setelah proses anak meninggal dan melanjutkan pemrosesan?
xargs ... bash -c '...;exit 0'atau bahkanxargs ... bash -c '... || echo erk'
parallel -j 1ini adalah solusi hack yang mungkin.
xargsversi 4.4.2debian wheezydan sepertinya setiap hal berjalan dengan baik bahkan jika saya membunuhsleepproses tertentu . Versi apaxargsyang Anda gunakan? mungkin mereka telah memperbaiki masalah ini dalam versi terbaru.