LINUX.ORG.RU

История изменений

Исправление 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 такой выхлоп умеет переопределять в файл и ротейтить несмотря на открытый дескриптор. Как?