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.