Я запускаю скрипт Python в фоне, но почему делает это, все еще печатает к консоли, даже когда передано по каналу в файл?
Я попробовал следующую команду:
python script.py &
python script.py > output.txt &
Я попробовал простым сценарием:
print "hello world"
С
python script.py &
Это все еще печатает к консоли.
Но
python script.py > output.txt &
работы, как предназначено и не печатают к консоли.
Вероятно, он выводится на Стдерре. Попробуйте это:
python script.py > output.txt 2>&1 &
В качестве альтернативы, похоже, вы могли бы запустить фоновую задачу, которая все еще работает:
python script.py &
Тип FG
, чтобы довести его на передний план, а затем убить его с помощью Ctrl- C
.
Даже этого недостаточно. Некоторые приложения записывают / dev / console вместо / dev / stdout или / dev / shdderr. Приложения, которые запрашивают пароль, часто делают это.
Если бы это было
python script.py > output.txt 2>&1 & python script.py >> output.txt 2>&1
см. Это для разъяснения на использование 2> & 1
Вы печатаете на стандартный выход или стандартная ошибка? Это два разных потока.
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