Просмотр оперативного вывода удаленной команды ssh

Сами команды не обрабатывают перенаправления. Когда оболочка создает новый процесс для запуска команды, она настроит ввод-вывод в соответствии с указаниями. Сама команда просто запускается, не заботясь об этом.

Ваша команда something_elseпросто выводит вывод на стандартный вывод и стандартный вывод, как обычно.

0
25.06.2021, 07:15
1 ответ

Когда программы отправляют вывод на стандартный вывод в uinx, вывод обычно буферизуется для оптимизации производительности ввода-вывода. Режим буферизации обычно выбирается в зависимости от контекста, в котором выполняется программа.

Когда вы запускаете интерактивный сеанс в Unix, ваш сеанс обычно буферизуется строкой,это означает, что буферы очищаются, когда программа выводит новую строку.

Когда программы запускаются в контексте файла (, т. е. стандартный вывод является файлом )или иногда контекстом конвейера, они обычно буферизуются блоками, что означает, что блок не записывается до тех пор, пока он не будет заполнен --обычно 8192 байта.

Программы могут внутренне изменить это либо путем сброса stdout, когда они хотят, либо напрямую изменив режим буферизации. К сожалению, поддержка Python для этого плохая или -отсутствует.

Вы можете внешне изменить режим буферизации, запустив программу с помощью команды stdbuf.

Например:

ssh me@server "stdbuf -oL python script.py"

Должен делать то, что вы хотите, принудительно буферизуя строку.

1
28.07.2021, 11:22

Теги

Похожие вопросы