Ich habe manchmal über xargs
Nacht lange Jobs und es ist wirklich ärgerlich, am Morgen herauszufinden, dass ich xargs
irgendwo in der Mitte gestorben bin , zum Beispiel wegen eines Segmentierungsfehlers in einem einzigen Sonderfall, wie es diese Nacht passiert ist.
Wenn auch nur ein xargs
Kind getötet wird, werden keine Eingaben mehr verarbeitet:
Konsole 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>
Konsole 2:
[09:35:54] kill 5601
Kann ich irgendwie verhindern xargs
, dass die Verarbeitung von Eingaben unterbrochen wird, sobald ein untergeordneter Prozess stirbt, und stattdessen die Verarbeitung fortsetzen?
xargs ... bash -c '...;exit 0'
oder sogarxargs ... bash -c '... || echo erk'
parallel -j 1
eine mögliche Hack-Lösung ist.
xargs
Version 4.4.2 indebian wheezy
und es sieht so aus, als ob alles gut läuft, auch wenn ich einen bestimmtensleep
Prozess beende. Welche Version von verwendestxargs
du? Möglicherweise haben sie das Problem in der neuesten Version behoben.