Tutorial del comando Bash nohup
El significado de nohup es 'sin colgar'. Normalmente, cuando cerramos la sesión del sistema, todos los programas o procesos en ejecución se cuelgan o terminan. Si desea ejecutar cualquier programa después de cerrar la sesión o salir del sistema operativo Linux, debe usar el comando nohup. Hay muchos programas que requieren muchas horas para completarse. No necesitamos iniciar sesión durante mucho tiempo para completar la tarea del comando. Podemos mantener este tipo de programas ejecutándose en segundo plano usando el comando nohup y verificar la salida más tarde. Algunos ejemplos de uso del comando nohup son la verificación de memoria, el reinicio del servidor, la sincronización, etc. ¿Cómo se puede utilizar? un nohup En este tutorial se muestra el comando en Ubuntu para ejecutar un programa en segundo plano.
Puede verificar la versión del comando nohup usando el siguiente comando.
$ nohup --version
Sintaxis del comando nohup:
Puede utilizar el comando nohup de dos formas.
- comando nohup [args…]
- opción nohup
Usando nohup con comandos
Ejemplo 1: uso del comando nohup sin '&'
Cuando ejecuta el comando nohup sin '& ' luego regresa al símbolo del sistema de shell inmediatamente después de ejecutar ese comando en particular en segundo plano. En el siguiente ejemplo, nohup correr intento comando sin '&' para ejecutar sleep1.archivo sh en el fondo. La salida de la nohup el comando escribirá en nohup.fuera el archivo si no se menciona ningún nombre de archivo de redireccionamiento en nohup mando. Para el siguiente comando, puede verificar la salida de sleep1.sh comprobando la salida de nohup.archivo de salida.
$ nohup bash sleep1.sh$ gato nohup.fuera
Puede ejecutar el comando de la siguiente manera para redirigir la salida a la producción.TXT expediente. Compruebe la salida de producción.TXT.
$ nohup bash sleep2.sh> salida.TXT$ salida de gato.TXT
Ejemplo 2: uso del comando nohup con '&'
Cuándo nohup comando usar con '& ' luego no regresa al símbolo del sistema de shell después de ejecutar el comando en segundo plano. Pero si lo desea, puede volver al símbolo del sistema de shell escribiendo 'fg '
$ nohup bash sleep1.sh &$ fg
Ejemplo 3: uso del comando nohup para ejecutar varios comandos en segundo plano
Puede ejecutar varios comandos en segundo plano utilizando el comando nohup. En el siguiente comando, los comandos mkdir y ls se ejecutan en segundo plano mediante los comandos nohup y bash. Puede obtener la salida de los comandos comprobando la salida.archivo txt.
$ nohup bash -c 'mkdir myDir && ls'> salida.TXT$ salida de gato.TXT
Ejemplo 4: inicie cualquier proceso en segundo plano utilizando nohup
Cuando se inicia cualquier proceso y el usuario cierra la terminal antes de completar la tarea del proceso en ejecución, el proceso se detiene normalmente. Si ejecuta el proceso con nohup, podrá ejecutar el proceso en segundo plano sin ningún problema. Por ejemplo, si ejecuta el silbido comando normalmente, entonces terminará el proceso cuando cierre la terminal.
$ ping -i 10 google.com
Puede consultar la lista de todos los comandos en ejecución utilizando el comando pgrep. Cierra la terminal. Vuelva a abrir la terminal y ejecute pgrep comando con -a opción. No se mostrará ninguna lista de comandos en ejecución porque todos los comandos en ejecución terminan cuando se cierra el terminal.
$ pgrep -a ping
Correr silbido comando con comando nohup. Vuelva a abrir la terminal y ejecute pgrep comando de nuevo. Obtendrá la lista del proceso con la identificación del proceso que se está ejecutando.
$ nohup ping -i 15 google.com &$ pgrep -a ping
Puede detener cualquier proceso en segundo plano ejecutando el comando kill. Simplemente ejecute el comando kill con el ID de proceso particular que se está ejecutando. Aquí, el ID de proceso del proceso en ejecución es 7015. Ejecute el comando kill en 7015 para finalizar el proceso.
$ matar 7015
Los usos del comando nohup se explican mediante ejemplos muy simples en este tutorial. Espero que tenga una idea clara de la función del comando nohup y pueda aplicar este comando para varios propósitos.