Comando Nohup en la guía del sistema Linux

  

Operación del sistema Linux, debido a varias razones, algunos programas se desconectan cuando se ejecutan, esto requiere el uso del comando nohup en Linux, use este comando Deje que el programa se ejecute en segundo plano, aprendamos juntos. Métodos

En el sistema operativo Linux ha estado funcionando un programa desde el fondo, que es usar el comando nohup.

En Unix /Linux, por ejemplo, si desea que un programa se ejecute en segundo plano, muchos de ellos usan &al final del programa para permitir que el programa se ejecute automáticamente.

Por ejemplo, para ejecutar mysql en segundo plano:

El código es el siguiente:

/usr /local /mysql /bin /mysqld_safe – usuario = mysql &

Pero agregar una gran cantidad de programas no es un demonio como mysqld. Tal vez el programa sea simplemente un programa normal. Generalmente, este programa termina con &pero si el terminal está cerrado, el programa se cerrará.

Para ejecutar en segundo plano, puede usar el comando nohup. Por ejemplo, si hay un test.php que necesita ejecutarse en segundo plano y desea ejecutarlo regularmente en segundo plano, use nohup:

El código es el siguiente:

nohup /root/test.php &

Después del retorno de carro en el indicador de comandos de la shell:

[~] $ que agrega la salida a nohup.out

La salida estándar del programa original se redirige automáticamente al archivo nohup.out en el directorio actual, que actúa como un registro.

Pero a veces hay un problema en este paso. Cuando el terminal está cerrado, el proceso se cerrará automáticamente. La vista nohup.out puede ser

para ver que el servicio se cierra automáticamente cuando el terminal está cerrado.

Después de consultar al ingeniero de Red Flag Linux, tampoco pudo entender. Después de ejecutar en mi terminal, el proceso que comenzó aún se estaba ejecutando después de que se cerró el terminal. Cuando me lo mostró en la segunda vez, descubrí que tenía un detalle diferente de su operación del terminal: después de preguntar nohup en el shell, aún necesita presionar cualquier tecla del terminal para regresar a la ventana de comandos de entrada del shell, y luego Salga del terminal escribiendo exit en el shell, y cierro el terminal haciendo clic en el botón Cerrar justo después de que la ejecución de nohup tenga éxito. . Por lo tanto, la sesión correspondiente al comando se desconectará en este momento y se notificará al proceso correspondiente a nohup que debe cerrarse de forma conjunta. Este detalle no ha sido observado por mí, así que lo registraré aquí.

Adjunto: referencia de comando nohup

comando nohup

Propósito: Ejecutar el comando sin colgar.

Sintaxis: nohup Comando [Arg …] [&]

Descripción: El comando nohup ejecuta el comando especificado por el parámetro Comando y cualquier parámetro Arg asociado, ignorando todos los bloqueos (SIGHUP) Señal Ejecute el programa en segundo plano con el comando nohup después de cerrar la sesión. Para ejecutar el comando nohup en segundo plano, agregue &(el símbolo para " y ") al final del comando.

Independientemente de si la salida del comando nohup se redirige al terminal, la salida se agrega al archivo nohup.out en el directorio actual. Si el archivo nohup.out del directorio actual no se puede escribir, la salida se redirige al archivo $ HOME /nohup.out. Si no se pueden crear o abrir archivos para anexarlos, el comando especificado por el parámetro Comando no se puede llamar. Si el error estándar es un terminal, todas las salidas que escriben el comando especificado para el error estándar se redirigen como salida estándar al mismo descriptor de archivo.

Estado de salida: este comando devuelve los siguientes valores de salida:

126 Puede encontrar el comando especificado por el parámetro Comando, pero no puede hacerlo.

127 El comando nohup tiene un error o no puede encontrar el comando especificado por el parámetro Comando.

De lo contrario, el estado de salida del comando nohup es el estado de salida del comando especificado por el parámetro Comando.

comando nohup y su archivo de salida

comando nohup: si está ejecutando un proceso y cree que el proceso no terminará cuando cierre la sesión de la cuenta, puede usar el comando nohup. Este comando puede continuar ejecutando el proceso correspondiente después de que cierre sesión en la cuenta /cierre el terminal. Nohup significa no colgar.

La forma general del comando es:

El código es el siguiente:

comando nohup &

Envíe el trabajo usando el comando nohup

Al enviar el trabajo utilizando el comando nohup, de forma predeterminada, toda la salida del trabajo se redirige a un archivo llamado nohup.out, a menos que se especifique un archivo de salida:

El código es el siguiente:

comando nohup》 myout.file 2》 &1 &

En el ejemplo anterior, la salida se redirige al archivo myout.file.

Usa trabajos para ver tareas.

Usar fg% jobnumber es llevar la tarea al primer plano para su ejecución. Si desea cerrar la tarea después de obtener el primer plano, presione Ctrl + c, pero si desea pausar esta tarea, puede presionar Ctrl + z. La tarea se coloca en un estado de pausa.

[root @ wangdm ~ 22:51 # 81] # trabajos

[2] + Detenido dd if = /dev /cero de = /dev /null bs = 8k count = 100000000 < Br>

[3] - Detenido dd if = /dev /zero of = /dev /null bs = 8k count = 100000000

Si la tarea que desea pausar continúa ejecutándose más tarde, puede usar bg% número de trabajo Después de que esta tarea en pausa continúe ejecutándose en segundo plano, se ejecutará

Alguien puede haber notado que los dos números de tareas 2 y 3 anteriores van seguidos de ‘ + ’ y ‘ - ’, ¿Qué significa esto ‘ + ’ Esta ‘ + ’ es la tarea que se llama de forma predeterminada en el fondo debajo de la ventana actual. Suena un poco incómodo hacer un experimento:

Las dos tareas que vimos anteriormente están todas en un estado detenido, normal. En el caso de dejar que la tarea continúe ejecutándose en segundo plano, está el comando bg% jobnumber. Ahora estoy realizando la siguiente operación. Ingreso directamente a bg task 2 y está activado. Es decir, en esta ventana, el fondo se activará con la tarea 2 de ‘ + ’ Ahora, es 3 para que se pueda repetir ‘ + ’ ahora se debe entender; fg es lo mismo que en esta situación, los amigos interesados ​​pueden probar

[root @ wangdm ~ 23:09 # 86] # bg

[2] + dd if = /dev /zero of = /dev /null bs = 8k count = 100000000 &

[root @ wangdm ~ 23:09 # 87] # jobs

[2] - Ejecutando dd if = /dev /zero of = /dev /null bs = 8k count = 100000000 &

[3] + Detenido dd if = /dev /zero of = /dev /null bs = 8k count = 100000000

[root @ wangdm ~ 23:09 # 88] # bg

[3] + dd Si = /dev /cero de = /d Ev /null bs = 8k count = 100000000 &

[root @ wangdm ~ 23:11 # 89] # trabajos

[2] - Ejecutando dd if = /dev /zero of = /dev /null bs = recuento 8k = 100000000 &

[3] + Ejecutando dd if = /dev /zero de = /dev /null bs = 8k count = 100000000 &

Además, hay dos herramientas ftp comúnmente utilizadas, ncftpget y ncftpput, que pueden implementar la carga y descarga ftp en segundo plano, por lo que puede usar estos comandos para cargar y descargar archivos en segundo plano.

Lo anterior es el uso de nohup en Linux. Después de usar este comando, el programa no se desconectará de forma inexplicable y siempre se ejecutará en segundo plano. Espero que el contenido de este artículo te ayude.

Copyright © Conocimiento de Windows All Rights Reserved