Ayúdanos a seguir proporcionándote tutoriales gratuitos y de calidad desactivando tu bloqueador de anuncios. suscriptores a nuestro sitio.
Tabla de contenidos

Cómo usar el comando nohup en Linux

27 feb 2021 2 min di lettura
Cómo usar el comando nohup en Linux

Introducción

nohup es un comando de los sistemas operativos Unix y tipo Unix, y más generalmente de los sistemas POSIX, que ejecuta otro comando haciendo que ignore la señal SIGHUP (hangup), para permitirle continuar la ejecución incluso en el caso de un desconexión del terminal o cerrar el emulador de terminal.

SIGHUP es una señal enviada a un proceso cuando su terminal de control está cerrada.

Normalmente, cuando ejecuta un comando a través de SSH si la conexión se pierde o se desconecta, la sesión SSH finaliza y todos los comandos ejecutados desde el terminal se terminan.

Servidor Nohup para evitar abortar comandos. Ignorará todas las señales de colgar y los comandos seguirán funcionando.

Cómo usar el comando nohup

La sintaxis del comando nohup es la siguiente:

nohup COMMAND [ARGS]

El comando no acepta otras opciones excepto el estándar --help y --version.

Echemos un vistazo al siguiente ejemplo:

nohup mycomand

Debería recibir un mensaje de salida similar al siguiente:

nohup: ignora input e aggiunge output a 'nohup.out'

nohup ejecutará el comando mycommand en primer plano y redirigirá la salida del comando al archivo nohup.out.

Este archivo se creará en el directorio de trabajo actual.

Si el usuario que ejecuta el comando no tiene permisos de escritura en el directorio de trabajo, el archivo se creará en el directorio de inicio del usuario.

Si cierra la terminal, el comando no terminará.

Ejecutando el comando en segundo plano

Usar nohup en primer plano no es muy útil, ya que no podrá interactuar con el shell hasta que se complete el comando.

Para ejecutar nohup en segundo plano, agregue el símbolo & al final del comando:

nohup mycomand &

Cuando ejecuta el comando en segundo plano, el ID del proceso de shell (entre paréntesis) y el ID del proceso se imprimirán en la terminal: Debería recibir un mensaje de salida similar al siguiente:

[1] 13265

Si por alguna razón desea finalizar el proceso, utilice el comando kill seguido del ID del proceso:

kill -9 13265

Redirigir la salida a un archivo

De forma predeterminada, nohup redirige la salida al archivo nohup.out. Si desea redirigir la salida del comando a un archivo diferente, puede usar la redirección de shell estándar.

Por ejemplo, para redirigir la salida estándar y el error estándar al archivo mycommand.out usaremos:

nohup mycommand > mycommand.out 2>&1 &

Para redirigir la salida estándar y el error estándar a diferentes archivos:

nohup mycommand > mycommand.out 2> mycommand.err &

Alternativas

Hay una serie de programas alternativos que puede utilizar para evitar cerrar un comando cuando cierra la terminal o cierra la sesión.

Pantalla Screen o GNU Screen es un programa multiplexor de terminal que le permite iniciar una sesión de pantalla y abrir cualquier número de ventanas (terminales virtuales) dentro de esa sesión.

Los procesos que se ejecutan en la pantalla continuarán ejecutándose cuando su ventana no sea visible, incluso si cierra la sesión.

Para obtener más información: Cómo utilizar el comando Pantalla para sesiones en Linux.

Tmux Tmux es una alternativa moderna a la pantalla GNU. Con Tmux también puede crear una sesión y abrir múltiples ventanas dentro de esa sesión. Las sesiones de Tmux son persistentes, lo que significa que los programas que se ejecutan en Tmux seguirán ejecutándose incluso si cierra la terminal.

Renegar de disown es un shell incorporado que elimina un trabajo de shell del control del trabajo de shell. A diferencia de nohup, también puede usar Disown en procesos en ejecución.

Conclusión

A estas alturas, debería tener una buena comprensión de cómo usar el comando nohup para evitar que los comandos se terminen cuando cierre la sesión o cierre la sesión del terminal.

Apóyenos si le gusta nuestro contenido. Gracias.

Buy me a coffeeBuy me a coffee

Únase a la conversación

Apóyenos con una donación.

Genial! A continuación, complete el pago para obtener acceso completo a Noviello.it.
Bienvenido de nuevo! Has iniciado sesión correctamente.
Te has suscrito correctamente a Noviello.it.
Éxito! Su cuenta está completamente activada, ahora tiene acceso a todo el contenido.
Éxito! Su información de facturación ha sido actualizada.
Su facturación no se actualizó.