Eu uso o comando $ nohup ...
para iniciar um aplicativo em segundo plano para poder fechar a janela do terminal posteriormente.
Após a execução, ele cria o arquivo ~/nohup.out
.
Exemplo:
orschiro@x230:~$ nohup /bin/bash -c "sleep 15 && python3 /home/orschiro/bin/show_state.py"
nohup: ignoring input and appending output to 'nohup.out'
Como posso impedir a nohup
criação nohup.out
?
command-line
nohup
orschiro
fonte
fonte
byobu
. :)byobu
, iniciar o que quiser, pressionarF6
e pronto. Você pode voltar a executar executandobyobu
novamente.Respostas:
Você pode redirecionar a saída para onde quiser, por exemplo:
o redirecionamento impede que o arquivo de saída padrão
nohup.out
seja criado./dev/null
é esquecimento; portanto, se você não deseja os dados, envie-os para lá.No bash, você pode abreviar
>/dev/null 2>&1
para&>/dev/null
Para programas que uso com frequência, faço um alias (e o adiciono ao meu
.bashrc
) por exemploAgora tudo que eu tenho que digitar é
show_state
fonte
show_state () { /bin/bash -c "$@" &>/dev/null }
? (Aviso: sintaxe ruim e provavelmente não funcionará! É apenas um exemplo!). Um detalhe: por queshow_state
quando você está jogando fora a saída denohup
?.py
arquivo. E sim, uma função é mais divertida. Eu tenho essa função mal escrito em um desktop Debian:shutup() { source "$@" >/dev/null 2>&1 & }
. E isso funciona. Talvez você possa sugerir algo semelhante, mas muito melhor?&>
funcionou (e, na minha opinião, parece um plano de fundo mais um redirecionamento stdout). Eu sempre aprendi isso como>&
. Isso é padrão?