Continuamos con la serie de entradas sobre Raspberry Pi viendo cómo gestionar procesos desde la consola de comandos en un sistema basado en Linux como Raspbian.
En cualquier sistema operativo vamos a tener la necesidad de trabajar con procesos. De hecho, lo hacemos cada vez que se ejecuta un comando. Es más, lo hacemos incluso sólo por ejecutar un terminal o conectarnos por ssh.
Gestionar los procesos, es decir, comprobar que procesos están ejecutándose, lanzar procesos en el fondo o finalizarlos, es una tarea habitual a la que tendréis que acostumbraros para sacar partido a vuestra Raspberry Pi.
En esta entrada veremos cómo gestionar los procesos en un sistema Linux como Raspbian en Raspberry Pi.
Ejecutar procesos
Para ejecutar un comando simplemente escribimos el nombre del mismo,
#ejecutar comando
comando
Si en lugar de un comando queremos ejecutar un fichero ejecutable en la carpeta actual haríamos lo siguiente.
#ejecutar aplicacion en carpeta actual
./aplicacion
Donde es necesario que el fichero ejecutable tenga permisos de ejecución.
Si durante la ejecución de un comando o aplicación queremos cancelar su ejecución pulsamos la combinación de teclas,
#cancelar comando
control + c
Gestionar procesos en el fondo
Cuando ejecutamos un comando o aplicación en la consola, esta se queda bloqueada hasta que el comando finaliza. Si queremos que la ejecución se realice en el fondo, añadimos la tecla ’&’ de esta forma
#iniciar proceso en background
comando &
Si queremos poner un comando que ya se está ejecutando en background, podemos usar la combinación de teclas.
#poner procesos en background
control + z
Si queremos visualizar los procesos que se ejecutan en segundo plano usamos el comando
#mostrar procesos en background
bg
Y si queremos traer de vuelta el proceso más reciente puesto en segundo plano usamos,
#traer al frente proceso
fg
Mostrar procesos en ejecución
Otra necesidad muy habitual, es saber que procesos se están ejecutando actualmente en la máquina. Para ello tenemos varios comandos disponibles.
Para mostrar los procesos activos en el sistema usamos el comando
#muestra los procesos activos
ps: Muestra los procesos que se encuentran activos en el sistema actualmente.
Si en su lugar, queremos ejecutar todos los procesos ejecutándose en el sistema podemos hacer,
#mostrar todos los procesos
ps -ef
Los comandos anteriores muestran los procesos en forma de listado. En su lugar, podemos visualizar de una forma similar a ‘ps -ef’ con un comando bloqueante que muestra de forma continua los procesos con el siguiente comando,
#mostrar todos los procesos
top: Muestra todos los procesos en funcionamiento.
Finalmente, el comando anterior tiene una versión visualmente más atractiva que podemos ejecutar con,
htop
Cerrar procesos
Finalmente, en ocasiones necesitaremos finalizar un proceso ejecutándose. Para ello usamos el comando
#cerrar un proceso
kill PID
Donde ‘PID’ es el identificador de proceso que podemos obtener con el comando ‘ps’.
Algunos procesos necesitan usar un “cierre forzado” para ser finalizados. Podemos hacerlo añadiendo el parámetro ‘-9’
#forzar cierre de proceso por PID
kill -9 PID
Si queremos finalizar un proceso por su nombre podemos usar el comando ‘killall’, que finalizará todos los procesos con el mismo nombre.
#finalizar proceso por nombre
killall -9 nombre
¡Así de fácil! Con estos pocos comandos podemos gestionar procesos en cualquier un sistema operativo basado en Linux como Raspbian en nuestra Raspberry Pi.