GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo ejecutar el comando / secuencia de comandos de Linux Shell en segundo plano

El estilo habitual de ejecutar un comando en una terminal de Linux es simplemente ejecutarlo y esperar a que salga correctamente. Una vez que sale el comando, puede proceder a ejecutar otros comandos en sucesión. Esto es lo que se conoce como ejecución de comandos en primer plano. Como sugiere la palabra, puede ver visualmente la salida del comando en la terminal.

A veces, sin embargo, ejecutar comandos en primer plano puede presentar una serie de desafíos. El comando puede tardar demasiado en salir, lo que hace que pierda un tiempo valioso y, en otras ocasiones, puede estar totalmente conectado a la sesión de shell y dejarlo atascado.

En tales casos, la mejor opción es ejecutar un comando en segundo plano. Puede enviar un comando (s) al fondo mientras ejecuta simultáneamente otros comandos en primer plano. Esto mejora la eficiencia del trabajo en la terminal y le ahorra tiempo.

En esta guía, nos enfocamos en cómo puede ejecutar el comando o script de shell de Linux en segundo plano.

Ejecutar el comando de shell en segundo plano con el signo (&) 

Para ejecutar un comando o una secuencia de comandos en segundo plano, termínelo con un signo de y comercial (&) al final, como se muestra.

$ comando &

NOTA:Terminar el comando con el signo ampersand no separa el comando de usted. Simplemente lo envía al fondo del shell actual que está utilizando, el comando aún imprimirá la salida en STDOUT o STDERR, lo que le impedirá ejecutar otros comandos en la terminal.

Un mejor enfoque es redirigir el comando a /dev/null y luego agregar el signo ampersand al final como se muestra

$ comando &>/dev/null &

Para confirmar que el comando se envió a segundo plano, ejecute el comando de trabajos.

Para finalizar el proceso en segundo plano, ejecute el comando kill seguido del PID del proceso de la siguiente manera. La opción -9 termina el proceso inmediatamente.

$ kill -9 138314

Ejecutar comando de shell o script en segundo plano usando el comando nohup

Otra forma de ejecutar un comando en segundo plano es usando el comando nohup. El comando nohup, abreviatura de no hang up, es un comando que mantiene un proceso en ejecución incluso después de salir del shell.

Lo hace bloqueando los procesos para que no reciban una señal SIGHUP (Signal Hang UP), que es una señal que normalmente se envía a un proceso cuando sale de la terminal.

Para enviar un comando o secuencia de comandos en segundo plano y mantenerlo en ejecución, utilice la sintaxis:

$ comando nohup &>/dev/null &

$ nohup shell-script.sh &>/dev/null &

Por ejemplo,

$ nohup ping google.com &>/dev/null &

Nuevamente, puede verificar que el comando se ejecuta en segundo plano usando el comando:

$ jobs

Conclusión

En esta guía, hemos cubierto dos formas de ejecutar comandos o scripts de shell en segundo plano. Hemos visto cómo puede ejecutar comandos en segundo plano usando el signo &y el comando nohup.

Lea también :Comando Linux para comprimir y descomprimir con ejemplos


Linux
  1. Cómo usar alias de shell en Linux

  2. ¿Cómo almacenar un comando en una variable en un script de shell?

  3. ¿Por qué ejecutar un comando de shell de Linux con '&'?

  4. linux:cómo ejecutar un comando en un directorio dado

  5. Cómo limpiar la salida del comando 'script' de Linux

Cómo almacenar un comando de Linux como una variable en el script de Shell

Cómo ejecutar un comando periódicamente en Linux usando Watch

Cómo usar el comando Declare en Linux Bash Shell

Cómo ejecutar Shell Script como servicio SystemD en Linux

¿Cómo ejecutar un comando en un script de Shell?

Cómo crear y ejecutar un script de shell en Ubuntu 22.04