normalmente, cuando ejecuta un comando en el terminal, tiene que esperar hasta que el comando termine antes de poder ingresar otro. Esto se llama ejecutar el comando en el proceso de primer plano o primer plano. Cuando un proceso se ejecuta en primer plano, ocupa su shell y puede interactuar con él utilizando los dispositivos de entrada.

¿Qué pasa si el comando tarda mucho en terminarse, y desea ejecutar otros comandos mientras tanto? Tienes varias opciones a tu disposición., La opción más obvia y directa es iniciar una nueva sesión de shell y ejecutar el comando en ella. Otra opción es ejecutar el comando en segundo plano.

un proceso en segundo plano es un proceso / comando que se inicia desde una terminal y se ejecuta en segundo plano, sin interacción del usuario.

en este artículo, hablaremos sobre los procesos en segundo plano es Linux. Le mostraremos cómo iniciar un comando en segundo plano y cómo mantener el proceso en ejecución después de que se cierre la sesión de shell.,

ejecutar un comando de Linux en segundo plano #

para ejecutar un comando en segundo plano, agregue el símbolo ampersand (&) al final del comando:

command &

El ID del trabajo de shell (rodeado de corchetes) y el ID del proceso se imprimirán en el terminal:

 25177

puede tener varios procesos ejecutándose en segundo plano al mismo tiempo.

el proceso en segundo plano continuará escribiendo mensajes en el terminal desde el que invocó el comando., To suppress the stdout and stderr messages use the following syntax:

command > /dev/null 2>&1 & 

>/dev/null 2>&1 means redirect stdout to /dev/null and stderr to stdout .,/div>

para llevar un proceso en segundo plano al primer plano, utilice el comando fg:

fg

Si tiene varios trabajos en segundo plano, incluya % y el ID del trabajo después del comando:

fg %1

para terminar el proceso en segundo plano, use el comando kill seguido del ID del proceso:

kill -9 25177

mover un proceso en primer plano a segundo plano #

para mover un proceso en primer plano en segundo plano:

  1. Stop el proceso escribiendo Ctrl+Z.,
  2. Mover el proceso detenido al fondo escribiendo bg.

Mantenga los procesos en segundo plano corriendo después de que un Shell salga #

Si su conexión se cae o cierra la sesión del shell, los procesos en segundo plano se terminan. Hay varias maneras de mantener el proceso en ejecución después de que finalice la sesión de shell interactiva.,

una forma es eliminar el trabajo del control de trabajo del shell usando el disown shell builtin:

disown

Si tiene más de un trabajo en segundo plano, incluya % y el ID del trabajo después del comando:

disown %1

confirme que el trabajo se elimina de la tabla de trabajos activos mediante el comando jobs -l. Para listar todos los procesos en ejecución, incluido el desautorizado, use el comando ps aux.,

otra forma de mantener un proceso en ejecución después de la salida del shell es usar nohup.

el comando nohupejecuta otro programa especificado como su argumento e ignora todas las señales SIGHUP (hangup). SIGHUP es una señal que se envía a un proceso cuando su terminal de control está cerrado.

para ejecutar un comando en segundo plano utilizando el comando nohup, escriba:

nohup command &

la salida del comando se redirige al archivo nohup.out.,

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

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

alternativas #

Hay una serie de programas que le permiten tener varias sesiones interactivas al mismo tiempo.

Screen #

Screen o GNU Screen es un programa multiplexor de terminal que le permite iniciar una sesión de screen 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 se desconecta.,

Tmux #

Tmux es una alternativa moderna a GNU screen. 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 continúan ejecutándose incluso si cierra el terminal.

Conclusión #

ejecutar un comando en segundo plano, include & al final del comando.

Cuando ejecuta un comando en segundo plano, no tiene que esperar hasta que termine antes de poder ejecutar otro.

Articles

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *