История изменений
Исправление PPP328, (текущая версия) :
Программы пишут в stdout/err, дескриптор в таком случае закрывать нельзя.
supervisord такой выхлоп умеет переопределять в файл и ротейтить несмотря на открытый дескриптор. Как?
UPD:
Посмотрел в исходниках. Он перехватывает stdout/err в pipe:
def _prepare_child_fds(self):
options = self.config.options
options.dup2(self.pipes['child_stdin'], 0)
options.dup2(self.pipes['child_stdout'], 1)
if self.config.redirect_stderr:
options.dup2(self.pipes['child_stdout'], 2)
else:
options.dup2(self.pipes['child_stderr'], 2)
for i in range(3, options.minfds):
options.close_fd(i)
Исходная версия PPP328, :
Программы пишут в stdout/err, дескриптор в таком случае закрывать нельзя.
supervisord такой выхлоп умеет переопределять в файл и ротейтить несмотря на открытый дескриптор. Как?