Я пытаюсь использовать GNU parallel в скрипте и заметил, что он начинает выводить данные только после -jX X jobs
# 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
Первое задание должно быть запущено раньше остальных (потому что это определит другие задания как параллельные и передаст вывод другому скрипту), но параллельное задание ожидает еще 3 задания
Есть ли способ изменить эту закономерность?
решение1
Обновитесь до версии 20181222 или более поздней.
# 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