Я пытаюсь выполнить команду с exec () и перенаправить stdout и stderr в файл.
exec("nohup python main.py -i 1 > /var/scripts/logs/1_out.log 2>&1 &");
Он создаст файл, но ничего не распечатает.
Если я запускаю команду в терминале, все выводится без проблем.
Получил это работает. Python делает свою собственную буферизацию вывода, которая препятствовала его записи в файл. Запуск с опцией -u отключает это. Конечный код выглядит так:
exec("nohup python -u main.py -i 1 > /var/scripts/logs/1_out.log 2>&1 </dev/null &");
Благодарю.
Других решений пока нет …