nohup: ignorando entrada e redirecionando stderr para stdout

17

Estou iniciando meu aplicativo em segundo plano usando nohup , conforme mencionado abaixo -

root@phx5qa01c:/bezook# nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out &
[1] 30781
root@phx5qa01c:/bezook# nohup: ignoring input and redirecting stderr to stdout

Mas toda vez que vejo essa mensagem -

nohup: ignoring input and redirecting stderr to stdout

Haverá algum problema se eu vir esta mensagem? O que significa e como posso evitá-lo?

    
por arsenal 19.12.2013 / 08:59

3 respostas

19

Para garantir que seu aplicativo seja desassociado de seu terminal - para que ele não interfira nos comandos de primeiro plano e continue a ser executado após o logout - nohup garante que nem stdin nem stdout nem stderr sejam dispositivos semelhantes a terminal . A documentação descreve as ações necessárias:

If the standard output is a terminal, all output written by the named utility to its standard output shall be appended to the end of the file nohup.out in the current directory. If nohup.out cannot be created or opened for appending, the output shall be appended to the end of the file nohup.out in the directory specified by the HOME environment variable. If neither file can be created or opened for appending, utility shall not be invoked.

If the standard error is a terminal, all output written by the named utility to its standard error shall be redirected to the same file descriptor as the standard output.

Você redirecionou o stdout para um arquivo quando digitou > exhibitor.out na sua linha de comando. Se você está certo em fazer com que o stderr do seu aplicativo seja direcionado para o mesmo arquivo que o stdout, você não precisa fazer mais nada. Ou você pode redirecionar o stderr para um arquivo diferente, adicionando um argumento como 2> exhibitor.err . (Obrigado a um usuário desconhecido - minhas notificações não mostraram um nome - por sugerir a inclusão dessa alternativa.)

    
por 19.12.2013 / 11:23
12

Você pode se livrar da mensagem se você redirecionar o erro std para a saída std:

nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out 2>&1 &
    
por 07.08.2015 / 16:39
3

Na minha situação, eu redireciono stdout e stderr, mas também exibe o seguinte no arquivo de log:

nohup: ignoring input

Para remover esse aviso, você também deve redirecionar o stdin da seguinte forma:

nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out 2>&1  </dev/null &

Eu sei que essa resposta está definitivamente atrasada para você, mas talvez ajudaria os outros.

    
por 09.08.2017 / 12:41