2010-12-28 23 views
179

Cuando ejecuto nohup some_command &, la salida va a nohup.out; man nohup dice que mirar info nohup que a su vez dice:¿Puedo cambiar el nombre de `nohup.out`?

Si la salida estándar es un terminal, la salida estándar de la orden se anexa a la 'nohup.out' archivo; si no se puede escribir en , se anexa al archivo '$ HOME/nohup.out'; y si no se puede escribir, no se ejecuta el comando .

Pero si ya tengo un comando usando nohup con la salida va a /nohup.out y quiero ejecutar otro, nohup de comandos, puede redirigir la salida a lo nohup2.out?

Respuesta

285
nohup some_command &> nohup2.out& 

y voila. sintaxis


antigua versión de Bash < 4:

nohup some_command > nohup2.out 2>&1& 
+4

@ismail, si lo entiendo, esto dirige el resultado fuera de stdout y nohup.out, en nohup2.out. Entonces, ¿qué hace '2> & 1 &' hacer? –

+12

'2> & 1' redirige' stderr' al mismo archivo de salida que 'stdout' que es en este caso' nohup2.out' – ismail

+14

En Bash 4, los dos redireccionamientos se pueden abreviar como uno '&> nohup2.out'. – ephemient

43

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 & posterior. En cambio, simplemente intenté con

nohup some_command > nohup2.out& 

y funciona exactamente como yo quiero. Dejando esto aquí en caso de que alguien más esté en la misma situación. Ejecutando Bash 4.3.8 para referencia.

+0

Tuve exactamente el mismo problema y tu solución lo resolvió. Gracias. – Sadjad

+0

Lo mismo para mí. thnks –

+0

¡Funcionó para mí también! ¡Gracias! –

10

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

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

Ahora something añade líneas de nohup2.out y something2 a nohup.out.

5

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

A Adjuntar salida en el archivo definido por el usuario puede usar >> en el comando nohup.

nohup your_command >> filename.out & 

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

Cuestiones relacionadas