¿Puedo cambiar el nombre de `nohup.out`?

254

Cuando corro nohup some_command &, la salida va a nohup.out; man nohupdice mirar lo info nohupque a su vez dice:

Si la salida estándar es un terminal, la salida estándar del comando se agrega al archivo 'nohup.out'; si eso no se puede escribir, se agrega al archivo '$ HOME / nohup.out'; y si eso no se puede escribir, el comando no se ejecuta.

Pero si ya tengo un comando usando nohupcon salida yendo /nohup.outy quiero ejecutar otro nohupcomando, ¿puedo redirigir la salida nohup2.out?

David LeBauer
fuente

Respuestas:

416
nohup some_command &> nohup2.out &

y voilá.


Sintaxis anterior para la versión Bash <4:

nohup some_command > nohup2.out 2>&1 &
ismail
fuente
44
@ismail, si entiendo, esto dirige la salida de stdout y nohup.out a nohup2.out. Entonces que hace 2>&1&?
David LeBauer
12
2>&1redirige stderral mismo archivo de salida stdoutque en este casonohup2.out
ismail
17
En Bash 4, las dos redirecciones se pueden abreviar como una &> nohup2.out.
efímero
1
Intenté &> nohup2.out y funciona, pero ¿cómo puedes saber tu versión bash?
monkut
99
@monkut bash --version
ismail
58

Por alguna razón, la respuesta anterior no funcionó para mí; No volví al símbolo del sistema después de ejecutarlo como esperaba con el & & final. En cambio, simplemente intenté con

nohup some_command > nohup2.out&

y funciona tal como lo quiero. Dejar esto aquí en caso de que alguien más esté en la misma situación. Ejecutando Bash 4.3.8 como referencia.

Godsmith
fuente
12

Como los manejadores de archivos apuntan a nodos i (que se almacenan independientemente de los nombres de archivo) en los sistemas Linux / Unix. Puede cambiar el nombre predeterminado nohup.outa cualquier otro nombre de archivo en cualquier momento después de comenzar nohup something&. Entonces también se podría hacer lo siguiente:

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

Ahora somethingagrega líneas a nohup2.outy something2para nohup.out.

Verdad
fuente
10

Los métodos anteriores eliminarán los datos del archivo de salida cada vez que ejecute el comando nohup anterior.

Para agregar salida en un archivo definido por el usuario , puede usar el >>comando nohup.

nohup your_command >> filename.out &

Este comando agregará todos los resultados en su archivo sin eliminar datos antiguos.

Irshad Khan
fuente