Перенаправить stderr вилки socat на отдельный процессLinux

Ответить Пред. темаСлед. тема
Anonymous
 Перенаправить stderr вилки socat на отдельный процесс

Сообщение Anonymous »

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

Код: Выделить всё

socat TCP4-LISTEN:12345,reuseaddr,fork EXEC:"python prompt.py"
Это работает так, как ожидалось. Prompt.py отображает некоторую информацию о stderr, которая отображается на стороне сервера. Вместо этого я бы хотел, чтобы stderr отправлялся в процесс регистрации на третьем сервере (а не на клиенте, который подключается к указанному выше socat). Я могу выполнить часть stderr, как и ожидалось (без socat), используя:

Код: Выделить всё

python prompt.py 2> >(nc -q 0 logger 2323)
В этом случае я могу прочитать/ответить на приглашение на терминале, выполняющем эту команду, и stderr перейдет к работающему регистратору:

Код: Выделить всё

socat TCP4-LISTEN:2323,reuseaddr,fork EXEC:"tee -a errors.txt"
и файл error.txt заполняется, как и ожидалось. Но когда я пытаюсь объединить их с:

Код: Выделить всё

socat TCP4-LISTEN:12345,reuseaddr,fork EXEC:"python prompt.py 2> >(nc -q 0 logger 2323)",pty
stderr Python Prompt.py не отправляется должным образом; вместо этого он по-прежнему отображается на сервере. Я тоже пробовал:

Код: Выделить всё

socat TCP4-LISTEN:12345,reuseaddr,fork EXEC:"bash -c 'python prompt.py 2> >(nc -q 0 logger 2323)'"
При этом при подключении к socat ничего не происходит. Почему EXEC моей команды bash или команды python не запускает перенаправление stderr? Есть ли способ сделать это?
Вместо этого я попробовал перенаправить stderr команды socat; однако это открывает и сохраняет открытым соединение nc, которое мне не нужно. Я хотел, чтобы соединение nc открывалось, а затем закрывалось каждый раз при запуске программы Python.

Подробнее здесь: https://stackoverflow.com/questions/784 ... te-process
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»