Comando canalizar/enviar para processo em execução no nohup que aceita entrada de STDIN

Comando canalizar/enviar para processo em execução no nohup que aceita entrada de STDIN

Eu tenho um programa que executo usando o nohup program &. Este programa aceita entrada de STDIN. Existe alguma maneira de enviar texto para STDINum programa que está sendo executado via nohup?

Isso está no FreeBSD executando o bash. Eu gostaria de ver como isso é feito no Linux também.

Responder1

nohupexecuta o programa com a entrada padrão redirecionada /dev/null(assumindo que você não redirecionou o nohupcomando em si). Então não, você não pode enviar informações para este programa.

Se você deseja enviar entradas para o programa, redirecione a entrada ao iniciá-lo:

nohup program <input-file.txt &  # input from a file
nohup data-producer | nohup program &  # input from another program
mkfifo program.pipe; nohup program <program.pipe &  # input from a named pipe, feed it what you want later

(Na verdade, pode ser possível reconectar a entrada padrão do programa a outra fonte, usando ptrace, ou seja, um depurador ou outro hack. Isso pode travar o programa se ele rastrear de onde vem sua entrada. ConsulteComo posso pausar um processo em execução no ssh, rejeitá-lo, associá-lo a um novo shell de tela e retomá-lo?; há outras perguntas na rede SE sobre este tópico.)

informação relacionada