¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Administración de procesos
Un proceso es un programa que se está ejecutando, ya sea por el usuario o por el sistema Linux.
Linux puede ejecutar programas en segundo plano “transparentes al usuario”, así como varios programas al mismo tiempo, por lo que se le denomina “multitarea”.
Cuando un programa se está ejecutando en segundo plano hasta el infinito, se denomina “demonio” y suele llevar como última letra la d. Ejemplo: httpd (servidor web apache), crond (planificador de tareas de Linux), etc.
Todo proceso se identifica con un número de identificación denominado PID (Process IDentifier).
Para crear procesos, el núcleo Linux provee de dos instrucciones (existentes en cualquier lenguaje de programación):
- fork: crea un proceso “hijo” de uno principal.
- exec: ejecuta el código que sea necesario en ese proceso.
De esta forma, todo proceso es hijo de otro, creándose de esta manera un árbol de procesos.
El primer proceso del sistema Linux es init, su PID es 1 y todos los demás cuelgan de él. No es posible conocer a priori el PID de cualquier otro proceso hijo.
Visualización de procesos
ps
Permite ver la lista de procesos del sistema. Extrae toda la información del pseudosistema de archivos /proc en el que el núcleo de Linux coloca toda la información respecto al estado del sistema en curso de ejecución.
Tiene muchas opciones, que conviene consultarlas con la opción –help1), aunque de forma predeterminada muestra únicamente los procesos iniciados por el usuario desde el terminal.
Opciones comunes:
- ps aux: Muestra los procesos de todos los usuarios(a), y los que no están vinculados a un terminal (x), especificando el nombre de usuario y la fecha de inicio (u).
- ps -ef: Muestra todos los procesos(-e) y mucha información (-f).
- %CPU Porcentaje de tiempo que se ha usado el procesador desde la ejecución del comando.
- %MEM Porcentaje de uso de la memoria disponible.
- COMMAND o CMD Nombre del comando que originó el proceso.
- GID o GROUP Identificación del grupo bajo el que se ejecuta el proceso.
- NI Nivel de prioridad del proceso.
- PID Identificación del proceso.
- PPID Identificación del proceso padre.
- RSS Cantidad de memoria RAM utilizada en KB.
- START o STIME Fecha de lanzamiento del proceso.
- STAT Estado del proceso. Definido por tres caracteres:
- El primer carácter puede tomar alguno de estos valores:
- R Proceso ejecutándose (Running).
- T Proceso parado (sTopped).
- S Proceso dormido (Sleeping), esto es, en espera del procesador.
- D Proceso dormido en espera de un recurso (Device, normalmente de entrada/salida). No pueden interrumpirse.
- Z Proceso terminado. Se quedará en este estado hasta que el proceso padre se de cuenta y recupere su código de retorno (Zombie). No pueden interrumpirse.
- TIME Tiempo total de uso de la CPU para este proceso.
- TT o TTY Terminal al que está vinculado el proceso. Si no está asociado a ninguno (como un demonio) aparece el carácter ?.
- UID o USER: Identificación del usuario bajo el que se ejecuta el proceso.
top
Permite visualizar la actividad del procesador en tiempo real.
Tiene las mismas etiquetas que la instrucción ps, siendo posible modificar las columnas de información presentes y la ordenación de los procesos.
Con la tecla [?] visualizamos la ayuda del comando, y con la tecla [q] salimos de top. Para modificar los campos usamos la tecla [f]. También se puede enviar señales a los procesos con la tecla [k].
Podemos usar el archivo de configuración /etc/toprc para establecer una configuración global para todos los usuarios y otro en ~/.toprc (directorio personal del usuario), para establecer una configuración personalizada.
pstree
Muestra los nombres de los procesos de forma jerárquica, lo que nos permite ver rápidamente la filiación de los mismos.
Con la opción -p se muestra el PID de cada uno de ellos.
Este comando muestra una línea cuando existen varias instancias del mismo proceso, y el número que aparece delante de * indica el número de instancias correspondientes.
Monitor del sistema
Aplicación gráfica que podemos iniciar escribiendo en el lanzador Monitor del sistema.
Este programa tiene 3 pestañas que muestran diferente información:
- Procesos: Muestra los procesos que están funcionando en el sistema, así como información acerca de los mismos: ID, recursos que utilizan (memoria, %CPU), Usuario que lo ejecuta, etc. Pulsando el botón derecho sobre cada uno, podemos realizar algunas acciones sobre él (cambiar prioridad, detener, finalizar, etc). Podemos seleccionar los procesos que queramos ver filtrando por: si lo hemos ejecutado nosotros, sólo los activos o todos, así como si deseamos ver las dependencias.
- Recursos: Gráficas de uso de memoria, %CPU y red.
- Sistemas de archivos: Información acerca del % de uso del espacio de las particiones en uso por el sistema.
Señales: kill y killall
Los comandos kill y killall permiten enviar señales a los procesos.
