El directorio /proc: información sobre el sistema y procesos

Según el FHS, el directorio /proc es el método adecuado para obtener información sobre el sistema. Además, también nos brinda datos sobre los procesos corriendo en él. En este post y en el siguiente veremos los contenidos de este directorio y explicaremos algunos de los puntos más útiles del mismo.

El directorio /proc

Para empezar, debemos hacer una importante aclaración. Los contenidos de /proc no son archivos y directorios «reales» sino son una especie de «ventana» que indica qué sucede en el kernel en un momento dado. Si ejecutamos el comando

du -sch /proc/*

podemos ver que el tamaño ocupado por este directorio en disco es de 0 bytes.

Lo que primero nos llama la atención en el directorio /proc es que hay varios directorios cuyo nombre es un número (1, 10, 12, 13, 606, etc). Dicho número es el PID de un cierto proceso y cada subdirectorio y contiene información específica sobre el mismo.

Cuando un proceso finaliza su ejecución, o es terminado, su directorio asociado dentro de /proc desaparece.

Por ejemplo, el proceso con PID 606 representa el servicio sshd que escucha por conexiones entrantes mediante el protocolo SSH. Veamos en la Fig. 1 qué hay en el interior del directorio /proc/606:

El directorio /proc y los contenidos de un subdirectorio de proceso
Figura 1 – El directorio /proc y los contenidos de un subdirectorio de proceso

Algunos de los archivos más interesantes dentro del mismo son los siguientes:

  • cmdline: contiene los argumentos de la línea de comandos que se utilizaron para iniciar el proceso.
  • cwd: es un enlace al directorio actual del proceso.
  • exe: es un enlace al ejecutable del proceso.
  • status: muestra información detallada sobre el estado del proceso.

Entre otras cosas, como veremos en el próximo post, el directorio /proc también provee información sobre el uso de la memoria y de CPU. Estos datos son esenciales a la hora de monitorear el funcionamiento del sistema.

¡No olviden suscribirse al blog para no perderse detalle!