En este corto post sobre servidores de Linux (Ubuntu específicamente) te enseñaré a ejecutar un programa en segundo plano sin bloquear la terminal.
Como sabes, al ejecutar un programa desde la consola, la misma se bloquea y no recibe más órdenes, por lo que si nos desconectamos o queremos ejecutar otro comando debemos detener al primero.
Al usar un servidor y conectarse usando SSH esto se vuelve un problema más grave, pues si nos desconectamos tenemos que detener el programa.
Por esto es que hoy te enseñaré a ejecutar un programa por SSH (de hecho también sirve de manera física) en segundo plano o en el background.
En mi caso tengo algunos programas corriendo en un servidor con Ubuntu, y debo ejecutarlos sin que bloqueen la terminal. Para hacerlo uso la siguiente sintaxis:
programa >> ubicación_log 2>&1 &
Por ejemplo, si tienes un programa llamado sistema_escolar
y quieres que los mensajes y errores queden en ~/control_escolar.log
entonces debes ejecutar lo siguiente:
./sistema_escolar >> ~/control_escolar.log 2>&1 &
Recuerda que ~
hace referencia a /home/tu_usuario
.
Al ejecutar el comando en segundo plano nos aparecerá el PID o Id de proceso del programa que acabamos de ejecutar, mismo que podemos detener más adelante con kill PID.
Si no guardas el PID no hay problema, lo puedes encontrar con ps
y grep
más adelante.
Siguiendo el ejemplo, si quisieras buscar el id de proceso del programa llamado sistema_escolar
debes ejecutar:
ps aux | grep sistema_escolar
Eso te daría normalmente dos líneas de salida, una del propio comando que acabas de ejecutar y otra del programa que ejecutaste anteriormente.
Una vez que tengas el id del proceso puedes detenerlo con:
kill PID
Así podemos ejecutar programas y comandos en segundo plano desde la terminal en Linux Ubuntu usando SSH o la consola.
Supongo que también funciona en otros sistemas basados en Linux, pero no lo he podido probar. Para terminar te dejo con más tutoriales de Linux.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.