Выводы сценария Python к консоли, даже когда выполнение it' в фоновом режиме

Я запускаю скрипт Python в фоне, но почему делает это, все еще печатает к консоли, даже когда передано по каналу в файл?

Я попробовал следующую команду:

python script.py &
python script.py > output.txt &

Я попробовал простым сценарием:

print "hello world"

С

python script.py &

Это все еще печатает к консоли.

Но

python script.py > output.txt &

работы, как предназначено и не печатают к консоли.

5
задан JBaczuk 25 October 2017 в 16:23
поделиться

4 ответа

Вероятно, он выводится на Стдерре. Попробуйте это:

python script.py > output.txt 2>&1 &

В качестве альтернативы, похоже, вы могли бы запустить фоновую задачу, которая все еще работает:

python script.py &

Тип FG , чтобы довести его на передний план, а затем убить его с помощью Ctrl- C .

7
ответ дан 18 December 2019 в 13:14
поделиться

Даже этого недостаточно. Некоторые приложения записывают / dev / console вместо / dev / stdout или / dev / shdderr. Приложения, которые запрашивают пароль, часто делают это.

2
ответ дан 18 December 2019 в 13:14
поделиться

Если бы это было

python script.py > output.txt 2>&1 & 
python script.py >> output.txt 2>&1 

см. Это для разъяснения на использование 2> & 1

2
ответ дан 18 December 2019 в 13:14
поделиться

Вы печатаете на стандартный выход или стандартная ошибка? Это два разных потока.

Program 2> file # pipe standard error
Program 2>&1 # pipe standard error to standard output (join streams)
Program > file 2>&1 # pipe both channels to file
1
ответ дан 18 December 2019 в 13:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: