Ich versuche, GNU parallel auf einem Skript zu verwenden, und mir ist aufgefallen, dass es erst nach -jX X Jobs mit der Ausgabe beginnt
# Only spawns cat after 100 seconds
(echo a; sleep 100) | parallel -j1 --lb cat
# Starts instantly
(echo a; echo a; sleep 100) | parallel -j1 --lb cat
Der erste Job muss vor den anderen gestartet werden (da er die anderen Jobs als parallel definieren und die Ausgabe an ein anderes Skript weiterleiten würde), aber parallel wartet auf 3 weitere Jobs
Gibt es eine Möglichkeit, dieses Muster zu ändern?
Antwort1
Upgrade auf 20181222 oder höher.
# Spawns a instantly
(echo a; sleep 100) | parallel -j1 --lb cat
# Starts a and b instantly, outputs a immediately, b after 100 sec
(echo a; echo b; sleep 100) | parallel -j1 --lb cat
# Starts a and b instantly, outputs a and b immediately (but output may be mixed)
(echo a; echo b; sleep 100) | parallel -j1 --lb cat