Como obter o nohup para sair corretamente ao usar o redirecionamento de arquivos

0

Usando o seguinte comando:

nohup tail -f file | stdbuf -o0 awk '/string1/ && /string2/' > file &

Isso cria dados no meu arquivo, que é o que eu quero, mas isso também me dá o seguinte:

[2] 13717
[root@server]# nohup: ignoring input and redirecting stderr to stdout

De lá eu tenho que ctrl-c para voltar ao prompt. O que preciso alterar para voltar a um prompt?

    
por user53029 20.03.2017 / 21:18

1 resposta

3

Você realmente tem um prompt. O que está acontecendo é que você está obtendo antes nohup relata seus avisos sobre stdin e stdout. Se você digitar um comando, ele será executado exatamente como você esperaria, não obstante a expansão aparente visualmente não ortodoxa em seu prompt.

Se isso for realmente ofensivo à sua sensibilidade, você pode contornar o problema com um subnível:

$ (nohup stuff and things > logfile & ) > /dev/null 2>&1

Como alternativa, você pode abordar os avisos. Você está sendo avisado porque não está lidando com a entrada padrão e com o erro padrão. Se você manuseá-las você mesmo, nohup não tem nada a mudar e então ficará em silêncio:

$ nohup stuff and htings > logfile 2> errfile < /dev/null &

Se você não quiser capturar o erro padrão, você pode usar /dev/null para o seu arquivo de erro; se você quiser que ele vá para o mesmo lugar que a saída padrão, você pode usar 2>&1 .

    
por 20.03.2017 / 21:35