Como redirecionar STDIN do processo em segundo plano?

1

No meu Ubuntu, eu executo o aplicativo java em segundo plano. Eu uso script bash para executá-lo e agora parece que:

nohup java -jar app.jar &
exit 0

O problema que eu quero ser capaz de escrever uma string de entrada para o meu aplicativo, sem torná-lo em primeiro plano, a partir de diferentes terminais / sessões. Algo como

echo "mytext" > /appdir/in

Como devo mudar meu roteiro?

    
por Croll 31.03.2016 / 10:50

2 respostas

1

main.sh

#!/bin/bash
set -e

if [ ! -p in ]; then
    mkfifo in
fi
tail -f in | java -jar app.jar

Envie o comando para o aplicativo com a seguinte sintaxe

echo "command" > /home/user/in
    
por 31.03.2016 / 16:01
0

Experimente:

mkfifo /appdir/in
nohup java -jar app.jar < /appdir/in &
exit 0

O teste:

$ ./startapp.sh
$ printf "%s\n" "mytext" >> /appdir/in
$ cat nohup.out
mytext

$

Existe um controle adicional para adicionar, a fim de gerenciar o ciclo de vida do / appdir / in pipe nomeado.

    
por 31.03.2016 / 11:54