1

У меня есть Rundeck, выполняющий удаленный сценарий, который в Python использует операторы печати, чтобы возвращать выходные данные, такие как:

$ python mytest.py 
PASS: Condition 1 passed
PASS: Condition 2 passed
PASS: and so on...

Однако, когда я запускаю это через Rundeck, он не показывает те же выходные данные, что и при print . В самом подробном режиме вывода отладки Rundeck я получаю только следующее:

06:31:12    Permanently added 'myremotenode.com' (RSA) to the list of known hosts.
06:31:12    SSH_MSG_NEWKEYS sent
06:31:12    SSH_MSG_NEWKEYS received
06:31:12    SSH_MSG_SERVICE_REQUEST sent
06:31:13    SSH_MSG_SERVICE_ACCEPT received
06:31:13    Authentications that can continue: publickey,password,keyboard-interactive
06:31:13    Next authentication method: publickey
06:31:13    Authentication succeeded (publickey).
06:31:13    /cygdrive/c/Program Files (x86)/Mozil...
06:32:06    Adding reference: ant.PropertyHelper
06:32:06    Setting project property: sshexec.output -> /cygdrive/c/Prog...

Я знаю, что удаленный скрипт на самом деле выполняется так же, как обычно, так как я получаю другие электронные письма, сгенерированные скриптом длиной ~ 30 минут.

Очевидно, я не хочу ждать 30 минут, чтобы увидеть результат каждого оператора печати в скрипте Python.

Как я могу получить тот же уровень вывода в Rundeck, что и в оболочке bash напрямую?

1 ответ1

1

Этот ТАК вопрос о буферизации вывода Python решил ее для меня.

Добавление флага -u в строку исполнения python исправило все, что перенаправляло вывод для Rundeck.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .