Я іноді займаю довгу xargs
роботу протягом ночі, і це насправді прикро виявити вранці, що xargs
помер десь посередині, наприклад, через помилку сегментації в одному окремому випадку, як це сталося в цю ніч.
Якщо навіть одна xargs
дитина вбита, вона більше не обробляє дані:
Консоль 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>
Консоль 2:
[09:35:54] kill 5601
Чи можу я якось запобігти xargs
припиненню обробляти більше даних, як тільки дитина помер, і замість цього продовжувати обробку?
xargs ... bash -c '...;exit 0'
або навітьxargs ... bash -c '... || echo erk'
parallel -j 1
це можливе рішення для злому.
xargs
версію 4.4.2 дюйму,debian wheezy
і схоже, що все працює нормально, навіть якщо я вбиваю конкретнийsleep
процес. Яку версіюxargs
ви використовуєте? можливо, вони вирішили проблему в останній версії.