Executa em segundo plano, mas não descarta a saída

3

Eu uso uma hospedagem Git. Então eu geralmente executo git push .

Eu quero executar git push em segundo plano, para que eu não espere quando terminar, mas faça outras tarefas no meu terminal.

Mas não quero executar git push em segundo plano real ( git push & ) porque preciso ver sua saída para garantir que ela seja executada sem erros.

Qual é a maneira correta de executá-lo como um processo em segundo plano, mas vendo sua saída?

A melhor coisa que eu transmito é:

xterm -hold -e 'git push' &

Mas isso usa o XTerm ao invés do Gnome Terminal, o aplicativo que eu mais uso. Isso é de alguma forma inconsistente.

Quais são as outras alternativas?

    
por porton 08.02.2016 / 19:32

2 respostas

2

Se você não precisa ver a saída em tempo real, pode fazer algo como:

git push 2>&1 > ~/git-push-$(date +"%Y%m%d-%H%M").log &

O texto acima criará um arquivo no seu diretório pessoal com a data e a hora em que você o invocou em seu nome de arquivo (por exemplo, git-push-20160208-1201.log ). Você pode colocar isso em uma função de alias ou shell para que você não precise redigitar, ou se você só precisa preservar o último push para revisão, você pode simplesmente usar:

git push 2>&1 > ~/git-push.log &

Você pode até ficar realmente chique e enviar uma notificação se o envio falhar, com o comando:

git push 2>&1 > ~/git-push.log || notify-send "Push failed" "git push initiated from $(pwd) at $(date) threw an error!" &
    
por 08.02.2016 / 20:01
0
git push 2>&1 &

"2 > & 1" redireciona toda a saída para stdout

    
por 08.02.2016 / 19:48