Bash: Coloque um trabalho em segundo plano e depois siga o log

7

Como você faz o trabalho de escape para que o & esteja realmente executando o primeiro comando em segundo plano?

# foo param1 param2 >> run.out &; tail -f run.out
    
por Paul Tarjan 06.10.2009 / 01:28

4 respostas

16

Basta soltar o ponto e vírgula:

# foo param1 param2 >> run.out & tail -f run.out
    
por 06.10.2009 / 01:37
1

Você precisa colocar o comando em segundo plano em ().

(ls -R / >>/tmp/list & ); tail -f /tmp/list

Infelizmente, isso realmente é o pano de fundo. Você não poderá nos% 1 para chegar ao seu PID.

    
por 06.10.2009 / 03:40
0

Você pode usar nohup:

nohup cmd & 

tail -f nohup.out
    
por 06.10.2009 / 03:00
0

Acabei de me deparar com esta questão e resolvi-a desta forma:

'foo param1 param2 >> run.out &' ; tail -f run.out

Eu não sei se a semântica é diferente.

Para este caso específico, o seguinte também é útil:

foo param1 param2 | tee -a run.out
    
por 30.01.2012 / 06:19