GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Nohup de Linux

El nohup El comando ejecuta otro programa especificado como su argumento e ignora todos los SIGHUP (colgar) señales. SIGHUP es una señal que se envía a un proceso cuando se cierra su terminal de control.

Por lo general, cuando ejecuta un programa a través de SSH, si su conexión se cae o cierra la sesión, la sesión finaliza y todos los procesos ejecutados desde la terminal se detendrán. Aquí es donde el nohup El comando es útil. Ignora todas las señales de colgado y el proceso continuará ejecutándose.

Cómo usar el comando nohup #

La sintaxis para nohup El comando es el siguiente:

nohup COMMAND [ARGS]

El comando no acepta ninguna otra opción excepto el estándar --help y --version .

Echemos un vistazo al siguiente ejemplo:

nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'

nohup ejecuta mycommand comando en primer plano y redirige la salida del comando a nohup.out expediente. Este archivo se crea 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 crea en el directorio de inicio del usuario.

Si cierra la sesión o cierra la terminal, el proceso no finaliza.

Ejecutando el comando en segundo plano #

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

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

nohup mycommand &

El resultado incluye el ID del trabajo de shell (entre corchetes) y el ID del proceso:

[1] 25177

Puede usar la identificación del trabajo para traer el comando al primer plano usando fg comando.

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

kill -9 25132

Redireccionar salida a un archivo #

Por defecto, nohup redirige la salida del comando a nohup.out expediente. Si desea redirigir la salida a un archivo diferente, use la redirección de shell estándar.

Por ejemplo, para redirigir la salida estándar y el error estándar a mycommand.out usarías:

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 varios programas alternativos que puede usar para evitar que un comando termine cuando cierra la terminal o se desconecta.

Pantalla #

Screenor 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 Pantalla continuarán ejecutándose cuando su ventana no esté visible, incluso si se desconecta.

Tmux #

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

Rechazar #

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

Conclusión #

nohup le permite evitar que los comandos finalicen cuando cierra la sesión o sale de la terminal.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. comando linux mv

  2. Linux du comando

  3. Comando IP de Linux

  4. Comando cd de linux

  5. Opciones del comando nohup en Linux

Comando de fecha en Linux

Comando W en Linux

Al mando en Linux

Comando Nohup Linux con ejemplos

Comando Df en Linux

Comando Nohup en Linux