Ya te hemos contado qué es un proceso en segundo plano de Linux y cómo iniciarlo correctamente. En este artículo te contaremos cómo funciona en este modo.
Ejecutar un script en Linux es una tarea, necesitas asegurarte de que funciona correctamente justo después de cerrar la terminal. La terminal se cierra de la siguiente manera: es necesario hacer clic en la cruz que se encuentra en la esquina superior de la pantalla, esto conduce a la terminación de todos los procesos en segundo plano. Existen varios métodos para salvarlos en caso de que se pierda la conexión con el shell interactivo
Primero: eliminar la cola de trabajos de la tarea mediante disown
:
disown
Como en los casos anteriores, si hay varios procesos ejecutándose concurrentemente, se debe especificar el número del relativo al que se realizará la acción:
disown %1
Asegúrese de que la tarea no está en la lista de tareas. Cómo hacerlo. Utilice la utilidad jobs -l
. Para ver toda la lista de procesos en ejecución, se utiliza el comando:
ps aux
Siguiente método: se guardan los procesos en ejecución con el comando nohup
. Este comando después de su ejecución ejecutará a su vez otro comando, todas las señales SIGHUP
serán ignoradas.
Puede ejecutar el comando en segundo plano así:
nohup command &
Como puedes ver en la imagen de arriba, la salida del comando será enviada a nohup.out
. Lo más importante es que después de cerrar la sesión y cerrar el terminal, el proceso seguirá funcionando. Existen algunas utilidades que permiten ejecutar dos o más sesiones a la vez. En particular, Screen
y Tmux
te permiten hacer esto.
Screen
o GNU Screen
es un multiplexor de terminales que le permite iniciar una sesión de trabajo y abrir cualquier número de ventanas (terminales virtuales) dentro de ella. Los procesos que se ejecuten en este programa funcionarán aunque sus ventanas sean invisibles o el programa haya dejado de ejecutarse.Tmux
es una alternativa más moderna a GNU Screen
. Sin embargo, las características de Tmux
no son fundamentalmente diferentes - puedes abrir muchas ventanas dentro de una misma sesión de la misma manera. Las tareas que se ejecutan en Tmux
continúan ejecutándose si se cierra el terminal.Hemos solucionado este problema, como puedes ver, todo es elemental y simple.