Как мне покраснеть nohup.out чаще?
В Ubuntu 10.04 у меня есть длинная программа на Python, которая печатает кучу выходных данных; Я запускаю это под "nohup". Тем не менее, он ждет до конца, чтобы поместить весь текст в nohup.out. Когда я запускаю подобные программы под FreeBSD, каждая строка отправляется на nohup.out. Есть ли настройка Ubuntu, которую я могу установить, чтобы получить вывод быстрее?
2 ответа
Решение
Да, это связано со способом буферизации stdout по умолчанию в Linux. Вам нужно явно запустить setbuf() в коде, чтобы переопределить это поведение.
Я предлагаю избежать nohup, если вы используете оболочку bash, она позволяет вам отсоединить команду от вашей оболочки
$ ( my_cmd > ~/output.log 2>&1 & )
Вы также можете использовать disown
для аналогичного эффекта на текущую работу.