У меня есть скрипт на python (test.py), использующий подпроцесс для выполнения некоторых команд bash и записи команд bash stdout / stderr в файл журнала. Это работает нормально, если запустить Python на переднем плане, как это:
python test.py -i 123 -d 567
Однако, если запустить test.py в фоновом режиме, как этот, кажется, что подпроцесс больше не отправляет stdout / stderr в файл журнала.
python test.py -i 123 -d 567 > /dev/null 2>&1 & disown
Вот фрагмент кода о подпроцессе:
process = subprocess.Popen(["xxx","xxx"], stdout=PIPE, stderr=PIPE)
stdoutdata, stderrdata = process.communicate()
log_output(stdoutdata, stderrdata)
где log_output () - метод, использующий ведение журнала для записи сообщения в файл.
Посоветуйте, пожалуйста, как запустить python в фоновом режиме, а затем отправьте stdout / stderr в файл журнала.
Спасибо!