У меня очень простая программа на Python, которую я запускаю в режиме supervisord.
Файл supervisord.conf полностью используется по умолчанию, за исключением раздела программы:
[program:logwatcher]
command=/path/to/python -u "/path/to/logwatcher.py"
Код питона:
import sys
print("print\n")
print("file=sys.stdout\n", file=sys.stdout)
print("file=sys.stderr\n", file=sys.stderr)
sys.stdout.write("sys.stdout.write\n")
sys.stderr.write("sys.stderr.write\n")
Производит этот вывод:
supervisor> tail logwatcher
print
file=sys.stdout
sys.stdout.write
supervisor> tail logwatcher stdout
file=sys.stderr
sys.stderr.write
supervisor> tail logwatcher stderr
file=sys.stderr
sys.stderr.write
почему tail stdout
показывает только сообщения stderr, а не сообщения stdout?
почему tail stdout
вообще показывает stderr?
если tail
должен имитировать tail stdout
почему они не совпадают?
протестировано на супервизоре 3.3.5 и супервизоре 4.0.1