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