Você provavelmente desejará descartar qualquer saída de STDERR também. Você pode fazer as duas coisas assim:
conky > /dev/null 2>&1 &
Esta instrução essencialmente diz ao shell para fazer o seguinte:
-
conky > /dev/null
- redireciona toda a saída padrão para / dev / null -
2>&1
- Redirecionar erro padrão para onde a saída padrão está apontando atualmente . Por causa do redirecionamento anterior, sua saída padrão está apontando para / dev / null, então o erro padrão será seguido. -
&
- Executa isso em um subcampo (plano de fundo). - Agradecimentos a @alexis por apontar que minha descrição para
&
não foi muito precisa:(a) Every external command must be run after a (v)fork, not just background processes. (b) Backgrounded processes are not run in a sub-shell, but executed immediately after the fork. The real difference when a process is backgrounded is that the invoking shell doesn't immediately wait(2) for it (but prints a prompt and awaits user input).
- Executar o conky no plano de fundo. Mais especificamente, bifurque o processo e execute-o em um sub-shell, de forma assíncrona, e retorne o controle do terminal para o usuário.
-
Bash considera isso um novo comando - isto é o mesmo que executar
>/dev/null
no prompt sem nada anterior ao redirecionamento. Nada acontece. - Redirecione o erro padrão para / dev / null do comando inexistente.