Как в QNX захватить выходные данные, которые не выводятся на стандартный вывод или стандартный вывод (напрямую на tty)?

I would like make a remote machine connect to my local machine, where I would have an interactive console

Cree una escucha en su máquina local:

socat file:`tty`,raw,echo=0 tcp-listen:PORT

Escriba el siguiente comando en la máquina remota:

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:YOUR_IP_ADDRESSE:PORT
2
15.06.2019, 02:04
3 ответа

Да, приложение foo, скорее всего, пишет напрямую в TTY.

Вот скрипт, который делает то же самое:

#!/bin/sh
echo 'bar' >$(tty)

Поскольку вашу scriptутилиту нельзя использовать для выполнения fooнапрямую (только через интерактивную оболочку, которую запускает утилита ), вам придется найти другой способ выделения нового TTY для выполнение команды.

Одним из таких способов является использованиеssh:

ssh -t localhost "$PWD/foo" >output.log

Это (ab )будет использовать sshдля подключения к localhost, принудительно выделяя TTY с -tи запуская приложение foo, расположенное в текущем каталоге. Вывод foo, включая все, что было записано в TTY, в стандартный вывод и в стандартную ошибку, вернется к вам из стандартного вывода ssh, и вы сможете перенаправить его куда угодно.

2
27.01.2020, 22:08

OK Я использую сценарий(на BSD-системе )для захвата вывода длинных запусков заданий или построения вывода. Это то, на что вы, по-моему, наткнулись. Например, со страницы руководства:

-a      Append the output to file or typescript, retaining the prior contents.

выглядит знакомым?:)

Опция -F pipeможет предоставить вам возможное решение. Но, в конце концов, я не совсем уверен, судя по вашему вопросу, что скрипт на самом деле то, что вы искали.

Взгляните на справочную страницу, на которую я ссылаюсь.

ХТХ

0
27.01.2020, 22:08

Если ваша программа игнорирует опцию -i, вы можете запустить ее напрямую с помощью

SHELL=/path/to/your/program script /dev/null > output 

Если он задыхается от опции -i, вы можете создать для него оболочку.

$ cat wrapper
#! /bin/sh
exec /path/to/your/program
$ chmod 755 wrapper
$ SHELL=./wrapper script /dev/null > output
0
27.01.2020, 22:08

Теги

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