Eu gostaria de redirecionar a saída gerada de um aplicativo em segundo plano no Linux para / dev / null.
Estou usando o editor de texto kate e ele imprime todas as mensagens de depuração no terminal que gostaria de redirecionar para / dev / null.
Alguma ideia de como fazer isso?
obrigado
Respostas:
Você usa:
Se ele deve ser executado em segundo plano, adicione um
&
>/dev/null 2>&1
significa redirecionarstdout
para/dev/null
Estderr
para o lugar ondestdout
aponta naquele momentoSe você deseja
stderr
ocorrer no console e somentestdout
acessando,/dev/null
pode usar:Neste caso
stderr
é redirecionado parastdout
(por exemplo, seu console) e depois o originalstdout
é redirecionado para/dev/null
Se o programa não terminar, você pode usar:
Sem qualquer parâmetro, todas as saídas vão para nohup.out
fonte
dup2()
ocorre imediatamente depois,fork()
mas antesexec*()
. Uma vezexec*()
executado o programa, o shell não tem a capacidade de redirecionar a saída desse processo. Corrija-me se eu estiver errado, mas não sei sobre um shell que implementou essa funcionalidade.Eles também redirecionarão ambos:
embora o manual do bash diga que o primeiro é o preferido.
fonte