Saya kadang-kadang menjalankan xargs
pekerjaan panjang dalam semalam dan sangat menjengkelkan untuk menemukan di pagi hari yang xargs
meninggal di suatu tempat di tengah, misalnya karena kesalahan segmentasi dalam satu kasus khusus, seperti yang terjadi malam ini.
Jika bahkan satu xargs
anak 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 xargs
berhenti memproses input lagi setelah proses anak meninggal dan melanjutkan pemrosesan?
xargs ... bash -c '...;exit 0'
atau bahkanxargs ... bash -c '... || echo erk'
parallel -j 1
ini adalah solusi hack yang mungkin.
xargs
versi 4.4.2debian wheezy
dan sepertinya setiap hal berjalan dengan baik bahkan jika saya membunuhsleep
proses tertentu . Versi apaxargs
yang Anda gunakan? mungkin mereka telah memperbaiki masalah ini dalam versi terbaru.