Inicia um processo em segundo plano, escreve em stdin e lê em stdout sem bloquear

1

Eu tenho um programa que lê stdin e escreve para stdout. No meu exemplo, é cat . Eu quero ter três scripts para fazer algo como o seguinte:

  1. start.sh cat criaria um processo em segundo plano e qualquer maquinário exigido pelos outros dois scripts.

  2. write.sh <pid> "hello" escreveria hello no stdin do processo criado anteriormente, sem fechá-lo.

  3. read.sh <pid> iria ler o stdout desse processo, apenas a parte escrita desde a última leitura, neste caso o hello , depois imprimi-lo e sair sem esperar por mais saída.

Eu entendo que posso ter (2) se eu criar um arquivo fifo. E eu posso ter (3) direcionando a saída para um arquivo e girando-o. Esta é uma solução normal? Parece um pouco ad hoc. Quais alternativas eu tenho?

    
por Karolis Juodelė 26.11.2015 / 20:13

0 respostas