Socat TCP aberto somente quando o PTY é aberto

1

Estou tentando vincular um PTY virtual a um dispositivo remoto que aceita conexões TCP na porta 23. A abertura e o fechamento do soquete no dispositivo de destino é um evento significativo e parte da operação do dispositivo.

No momento, estou tentando usar socat para fazer o trabalho, com:

socat pty,link=/dev/ttyACM99,raw tcp:192.168.0.15:23

Funciona, pois consigo abrir /dev/ttyACM99 e ler / gravar dados no dispositivo - no entanto, assim que o comando socat é executado, a porta TCP é aberta e só fecha quando socat é finalizado .

O que eu preciso é que a porta TCP não abra até que algum outro software (não importa o que) abra /dev/ttyACM99 . Quando /dev/ttyACM99 é fechado, a conexão TCP deve ser desconectada.

Não consigo encontrar nada nas páginas de manual socat ou no googling (embora seja uma coisa muito complicada para o google) que diz que isso é possível com socat , e eu realmente não quero ter para ir ao incômodo de escrever meu próprio programa de encanamento (embora eu pudesse, se eu realmente precisasse).

Atualização:

Eu encontrei o parâmetro wait-slave para o pipe PTY, que faz o que eu quero - no entanto, ele agora termina socat no fechamento do PTY, que está longe de ser ideal.

socat pty,link=/dev/ttyACM99,raw,wait-slave tcp:192.168.0.15:23

Existe uma opção como wait-slave ou que pode ir com wait-slave que apenas fechará o soquete de destino em vez de fechar todo o programa? No momento, estou executando em while 'true' , o que parece funcionar por enquanto, mas não é o ideal.

    
por Majenko 01.05.2017 / 13:04

0 respostas

Tags