Ответ 1
Команда head
только считывает первые несколько строк. Ваш код ожидает, что весь его вывод будет считан и будет вызывать ошибку, если он не может произвести вывод. Если законно удалять выходные данные из вашей программы, не рассматривайте его как фатальную ошибку в программе. Если это не легально, чтобы выбросить выход из вашей программы, не подключайте его к head
.
В настоящее время у вас есть состояние гонки. Если head
начинает игнорировать ввод до того, как программа завершит запись своего вывода, программа получит исключение. Если программа завершит запись своего вывода до того, как head
начнет игнорировать его вход, все будет в порядке.
Как глупое временное исправление: node test.js | tee /dev/null | head
Теперь tee
будет принимать все выходные данные программы.