Иногда я выполняю длинную 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.2debian wheezy
и похоже, что все работает нормально, даже если я убиваю определенныйsleep
процесс. Какую версиюxargs
вы используете? возможно, они исправили проблему в последней версии.