Понимание регистрации супервизора;stdout только отображение сообщений stderr - PullRequest
1 голос
/ 14 апреля 2019

У меня очень простая программа на 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

...