Posso cambiare il nome di `nohup.out`?


254

Quando corro nohup some_command &, l'output passa a nohup.out; man nohupdice di guardare info nohupche a sua volta dice:

Se l'output standard è un terminale, l'output standard del comando viene aggiunto al file 'nohup.out'; se non è possibile scriverlo, viene aggiunto al file "$ HOME / nohup.out"; e se non è possibile scriverlo, il comando non viene eseguito.

Ma se ho già un comando che utilizza nohupcon l'output /nohup.outdiretto a e voglio eseguirne un altro, nohupcomando, posso reindirizzare l'output a nohup2.out?

Risposte:


416
nohup some_command &> nohup2.out &

e voilà.


Sintassi precedente per versione Bash <4:

nohup some_command > nohup2.out 2>&1 &

4
@ismail, se ho capito, questo dirige l'output da stdout e nohup.out, a nohup2.out. Allora cosa fa 2>&1&?
David LeBauer,

12
2>&1reindirizza stderrallo stesso file di output stdoutche si trova in questo casonohup2.out
ismail il

17
In Bash 4, i due reindirizzamenti possono essere abbreviati come uno &> nohup2.out.
effimero

1
Ho provato &> nohup2.out e funziona, ma come puoi dire la tua versione bash?
monkut

9
@monkut bash --version
ismail

58

Per qualche ragione, la risposta sopra non ha funzionato per me; Non sono tornato al prompt dei comandi dopo averlo eseguito come previsto con il trailing &. Invece, ho semplicemente provato con

nohup some_command > nohup2.out&

e funziona proprio come lo voglio io. Lasciandolo qui nel caso in cui qualcun altro si trovi nella stessa situazione. Esecuzione di Bash 4.3.8 per riferimento.


12

Poiché i gestori di file puntano a i-nodes (che sono memorizzati indipendentemente dai nomi dei file) su sistemi Linux / Unix È possibile rinominare il valore predefinito nohup.outin qualsiasi altro nome file in qualsiasi momento dopo l'avvio nohup something&. Quindi anche uno potrebbe fare quanto segue:

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

Ora somethingaggiunge linee da nohup2.oute something2per nohup.out.


10

I metodi sopra rimuoveranno i dati del tuo file di output ogni volta che esegui il comando nohup sopra.

Per aggiungere l'output nel file definito dall'utente è possibile utilizzare >>nel comando nohup.

nohup your_command >> filename.out &

Questo comando aggiungerà tutto l'output nel tuo file senza rimuovere i vecchi dati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.