Posso mudar o nome de `nohup.out`?

254

Quando corro nohup some_command &, a saída vai para nohup.out; man nohupdiz para olhar para o info nohupque por sua vez diz:

Se a saída padrão for um terminal, a saída padrão do comando será anexada ao arquivo 'nohup.out'; se não puder ser gravado, ele será anexado ao arquivo '$ HOME / nohup.out'; e se isso não puder ser gravado, o comando não será executado.

Mas se eu já tenho um comando usando nohupa saída /nohup.oute quero executar outro nohupcomando, posso redirecionar a saída para nohup2.out?

David LeBauer
fonte

Respostas:

416
nohup some_command &> nohup2.out &

e voila.


Sintaxe mais antiga da versão Bash <4:

nohup some_command > nohup2.out 2>&1 &
ismail
fonte
4
@ismail, se bem entendi, isso direciona a saída do stdout e nohup.out para o nohup2.out. Então o que 2>&1&faz?
David LeBauer
12
2>&1redireciona stderrpara o mesmo arquivo de saída stdoutque é neste casonohup2.out
ismail
17
No Bash 4, os dois redirecionamentos podem ser abreviados como um &> nohup2.out.
ephemient
1
Eu tentei o &> nohup2.out e funciona, mas como você pode dizer a sua versão do bash?
Monkut
9
@monkut bash --version
ismail
58

Por alguma razão, a resposta acima não funcionou para mim; Não retornei ao prompt de comando depois de executá-lo, como esperava com o & à direita. Em vez disso, eu simplesmente tentei com

nohup some_command > nohup2.out&

e funciona exatamente como eu quero. Deixando isso aqui, caso outra pessoa esteja na mesma situação. Executando o Bash 4.3.8 para referência.

Godsmith
fonte
12

Como os manipuladores de arquivos apontam para os nós-i (que são armazenados independentemente dos nomes dos arquivos) nos sistemas Linux / Unix, você pode renomear o padrão nohup.outpara qualquer outro nome de arquivo a qualquer momento após iniciar nohup something&. Então também se pode fazer o seguinte:

$ nohup something&
$ mv nohup.out nohup2.out
$ nohup something2&

Agora somethingadiciona linhas para nohup2.oute something2para nohup.out.

TrueY
fonte
10

Os métodos acima removerão os dados do arquivo de saída sempre que você executar o comando acima nohup.

Para acrescentar saída no arquivo definido pelo usuário, você pode usar o >>comando nohup.

nohup your_command >> filename.out &

Este comando anexará toda a saída do seu arquivo sem remover os dados antigos.

Irshad Khan
fonte