Comando Pipe / send para processar em execução no nohup que aceita entrada de STDIN

3

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

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

    
por vivin 21.12.2010 / 19:41

1 resposta

6

nohup executa o programa com entrada padrão redirecionada de /dev/null (supondo que você não tenha redirecionado o comando nohup ). Então não, você não pode enviar entrada para este programa.

Se você quiser enviar entrada para o programa, redirecione a entrada quando a iniciar:

nohup program <input-file.txt &  # input from a file
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 , isto é, um depurador ou outro hack. Isso poderia travar o programa se ele mantiver o controle de onde sua entrada é. a href="https://unix.stackexchange.com/q/4034/885"> Como posso pausar um processo em execução sobre o ssh, deserdá-lo, associá-lo a um novo shell de tela e desmarcá-lo? existem outras questões sobre a rede SE sobre este tópico.)

    
por 22.12.2010 / 00:28

Tags