我有时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
您使用的是哪个版本?可能是他们已解决了最新版本的问题。