Los procesos en Linux juegan un papel fundamental dentro de todas las acciones a ejecutar ya que estos permiten qué servicios, aplicaciones y roles sean ejecutados de forma correcta. Cuando un proceso presenta algún tipo de error es probable que esto desencadene que muchas otras tareas se vean afectadas dando como resultado un impacto negativo en muchas otras áreas. En ocasiones puede ocurrir que nos encontremos con procesos que se paran repentinamente y que debemos de encontrar para poder finalizarlo. Por ello, es útil conocer cómo ver los procesos que están corriendo y así elegir cuáles queremos matar para evitar más fallos.
Como administradores de sistemas Linux debemos hacer uso de las herramientas integradas para gestionar los procesos y a través de la terminal será posible mostrar un proceso en ejecución, cambiar el nivel de prioridades, eliminar procesos y más acciones sobre estos.
Normalmente, cuando deseamos ver los procesos ene ejecución en Linux usamos el comando “top” que genera un listado completo de los procesos con detalles como:
- PID del proceso.
- Usuario que tiene el proceso.
- Uso de CPU, memoria y demás.
Solvetic explicará otros métodos como podemos validar y gestionar los procesos en Linux.
1. Administrar procesos usando PS en Ubuntu
El comando ps (process status – estado de proceso), es uno de los más comunes ya que este comando lista los procesos en ejecución en tiempo real.
La ejecución básica de ps es la siguiente:
ps -aux
Como resultado obtenemos los siguientes valores:
- Usuario con el proceso.
- PID del proceso.
- Uso de CPU y memoria RAM.
- TTY.
- Hora de inicio del proceso.
- Tiempo activo y más.
Otra opción para usar ps es la siguiente:
sudo ps -a
Podríamos ver los procesos de un usuario en particular:
sudo ps -U Solvetic
En caso de que el sistema cuente con demasiados procesos, es posible hacer uso de los comandos less y more command como pipe para mostrar el proceso en una pantalla a la vez.
ps -aux | more sudo ps -aux | les
También es posible buscar un proceso en particular usando la siguiente sintaxis:
ps aux | grep “proceso”
Algunos de los parámetros a usar con el comando ps son:
2. Usar el comando PGREP en Ubuntu
El comando pgrep es una utilidad la cual toma una expresión regular de la línea de comandos y se encarga de retornar el ID de los procesos cuyo nombre coincida con la expresión regular indicada, su sintaxis de uso es:
pgrep proceso
Al ejecutarlo, el resultado será el PID de los procesos asociados a la búsqueda:
Si deseamos listar tanto el PID como el nombre del proceso añadimos el parámetro -l:
sudo pgrep -l proceso
3. Usar el comando top y htop en Ubuntu
Como hemos mencionado, son los comandos más usados para todo el tema de gestión de procesos en Linux, ya que tanto top como htop listan los procesos en tiempo real con una serie de atributos de análisis.
La sintaxis básica de top es ejecutar:
Top
Como resultado obtendremos todos los procesos con sus atributos:
Algo a importante de este comando top es que en la parte superior se despliega información vital para los administradores como:
- Cantidad de usuarios.
- Numero de tareas en tiempo real.
- Cuantos procesos están en hibernación o detenidos.
- Uso de memoria y disco, etc.
Al usar el comando top, veremos información resumida del sistema, así como una lista de las tareas actualmente administradas por el kernel de Linux, algo a tener en cuenta es que toda la información resumida del sistema puede ser configurable por el usuario. Algunos de los parámetros a usar con top son:
top -u solvetic
Ahora, el comando htop es un visor de procesos gratuito (GPL) basado en ncurses para sistemas Linux. Su funcionamiento es idéntico a top en la parte superior, pero la diferencia radica en que será posible desplazarnos de forma vertical y horizontal con el fin de visualizar todos los procesos que se ejecutan en el sistema. Se despliegan las líneas de comando asociadas. Para su uso basta con ejecutar htop:
Allí vemos los procesos de una forma interactiva y algunos de los parámetros que podemos usar son:
-d –delay
-C --no-color --no-color
-h –help
-u --user = USERNAME
-p Pag
-s --sort-key
-v –version
Además de esto, podemos usar las teclas de función así:
F1
F2
F3
F4
F5
F6
F7 / F8
F9
F10
Por ejemplo, si usamos F2 accedemos a todas las variables de configuración:
4. Gestionar procesos con KILL en Ubuntu
El comando kill básicamente ha sido desarrollado para matar un proceso en conflicto, su sintaxis es:
kill pid kill -signal pid
Por ejemplo:
Kill 4220
El comando kill envía una señal a un proceso, en caso de no definir que señal enviar, por defecto se envía la señal TERM la cual termina el proceso. Algunos de los parámetros a usar son:
-s signal
-l, --list [= señal]
-L, --table
Las señales, junto a su número son:
- 1 HUP
- 2 INT
- 3 QUIT
- 4 ILL
- 5 TRAP
- 6 ABRT
- 7 BUS
- 8 FPE
- 9 KILL
- 10 USR1
- 11 SEGV
- 12 USR2
- 13 PIPE
- 14 ALRM
- 15 TERM
- 16 STKFLT
- 17 CHLD
- 18 CONT
- 19 STOP
- 20 TSTP
- 21 TTIN
- 22 TTOU
- 23 URG
- 24 XCPU
- 25 XFSZ
- 26 VTALRM
- 27 PROF
- 28 WINCH
- 29 POLL
- 30 PWR
- 31 SYS
Por ejemplo, para finalizar un proceso podemos ejecutar:
kill -15 4220
5. Usar el comando PKILL en Ubuntu
El comando pkill busca o señaliza procesos basados en nombre y otros atributos.
Su sintaxis general es:
pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...] [-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
El comando pkill se encarga de enviar la señal especificada la cual es por defecto SIGTERM, a cada proceso en lugar de enumerarlos en la salida estándar. Su ejecución básica es:
pkill “proceso”
Algunos de los parámetros a usar son:
-d delimiter
-F
-g pgrp
-G gid
-l
-e echo
-c count
-f full
-n newest
o oldest
-s sesión
-x exact
6. Usar los comandos NICE y RENICE en Ubuntu
El propósito principal del comando nice es ejecutar un proceso o comando con una prioridad más baja o más alta de la establecida por defecto, mientras que con el comando renice, se puede alterar el valor original de nice.
Los valores pueden variar de -20 a 19, siendo 19 la prioridad más baja. La sintaxis a usar es:
renice {Prioridad} -p {PID}
Por ejemplo, vamos a identificar los procesos con pgrep y luego asignaremos la prioridad con renice. Como vemos se ha establecido la nueva prioridad para el proceso seleccionado.
pgrep VBoxClient sudo renice 934 12
Como podemos ver, las opciones para gestionar, administrar y controlar los procesos en Ubuntu será una tarea relativamente simple gracias a cada uno de los comandos descritos y cada uno de ellos desplegará información valiosa para cada tarea de soporte a nivel administrativo.