|
|
Directorio /proc |
|
|
Autor: linuxcpp _
URL
_
Tb ()
_
Categorias: LINUX- Utilidades, C/C++
|
Conocer la estrucutura del directorio /proc puede resultar bastante útil, sobre todo para los programadores.
En este directorio se va a mantener información acerca de los procesos que se encuentran actualmente en ejecución. Los procesos son identificados por un número que se llama PID. El comando ps -aux nos imprime un listado con los procesos que se encuentran en ejecución en dicho momento, donde podremos observar entre otros valores el número PID de los procesos.
En el directorio /proc existirá una carpeta para cada proceso en ejecución. Esta carpeta tendrá como nombre el valor PID del proceso.
Dentro de cada carpeta de un proceso nos encontraremos con varios archivos. No es mi intención realizar una explicación exhaustiva de cada archivo, pero cabe destacar el fichero:
- cmdline: El cual contiene información acerca del nombre del proceso, incluyendo la ruta completa del mismo.
- stat: Este fichero contiene mucha información acerca del proceso. Se trata de un fichero de texto compuesto de varios campos, los cuales se encuentrán separados por el carácter espacio. Entre los distintos campos tenemos el PID, el nombre del proceso (sólo el nombre del proceso, la ruta completa no), etc.
- statm: Este fichero muestra información importante acerca de la memoria que está usando el proceso.
Información completa y exhaustiva acerca de estos ficheros y otros, incluyendo sus campos, podemos encontrarlos usando el comando: man proc
Volviendo a la ruta original /proc nos encontraremos una serie de archivos de relativa importancia, no orientados a procesos individuales sino al conjunto completo:
- cpuinfo: Donde encontraremos bastante información acerca de nuestro procesador.
- stat: Se muestra información acerca del rendimiento del procesador en cuestión: donde se incluye, entre otras, información acerca del tiempo que lleva el procesador encendido, el número de procesos en ejecución, etc.
- version: Muestra información acerca de la versión de kernel, compilador gcc y debian... de nuestro ordenador.
De nuevo os remito al comando man proc para obtener mayor información de éstos y otros ficheros.
Las aplicaciones prácticas de conocer en profundidad la estructura del directorio /proc y sus ficheros pueden ser numerosas, como puede ser realizar software que maneje procesos activos. Se pueden extraer los mismos datos que los comandos ps -aux o top, el cual recomiendo que lo probeis: top -d 1.
Yo he sido capaz de realizar un programa capaz de extraer la misma información que dichos comandos, por lo que os aseguro que toda la información que deseemos de los procesos se encuentra en /proc, y queda a imaginación del programador las utilidades prácticas que puede tener conocer ésto, desde listar los procesos activos hasta saber si un programa pierde memoria...
Creo que en el comando man proc podreis encontrar toda la información que busqueis, pero si necesitais conocer algún campo o fichero de forma más concreta dejad un comentario.
En este directorio se va a mantener información acerca de los procesos que se encuentran actualmente en ejecución. Los procesos son identificados por un número que se llama PID. El comando ps -aux nos imprime un listado con los procesos que se encuentran en ejecución en dicho momento, donde podremos observar entre otros valores el número PID de los procesos.
En el directorio /proc existirá una carpeta para cada proceso en ejecución. Esta carpeta tendrá como nombre el valor PID del proceso.
Dentro de cada carpeta de un proceso nos encontraremos con varios archivos. No es mi intención realizar una explicación exhaustiva de cada archivo, pero cabe destacar el fichero:
- cmdline: El cual contiene información acerca del nombre del proceso, incluyendo la ruta completa del mismo.
- stat: Este fichero contiene mucha información acerca del proceso. Se trata de un fichero de texto compuesto de varios campos, los cuales se encuentrán separados por el carácter espacio. Entre los distintos campos tenemos el PID, el nombre del proceso (sólo el nombre del proceso, la ruta completa no), etc.
- statm: Este fichero muestra información importante acerca de la memoria que está usando el proceso.
Información completa y exhaustiva acerca de estos ficheros y otros, incluyendo sus campos, podemos encontrarlos usando el comando: man proc
Volviendo a la ruta original /proc nos encontraremos una serie de archivos de relativa importancia, no orientados a procesos individuales sino al conjunto completo:
- cpuinfo: Donde encontraremos bastante información acerca de nuestro procesador.
- stat: Se muestra información acerca del rendimiento del procesador en cuestión: donde se incluye, entre otras, información acerca del tiempo que lleva el procesador encendido, el número de procesos en ejecución, etc.
- version: Muestra información acerca de la versión de kernel, compilador gcc y debian... de nuestro ordenador.
De nuevo os remito al comando man proc para obtener mayor información de éstos y otros ficheros.
Las aplicaciones prácticas de conocer en profundidad la estructura del directorio /proc y sus ficheros pueden ser numerosas, como puede ser realizar software que maneje procesos activos. Se pueden extraer los mismos datos que los comandos ps -aux o top, el cual recomiendo que lo probeis: top -d 1.
Yo he sido capaz de realizar un programa capaz de extraer la misma información que dichos comandos, por lo que os aseguro que toda la información que deseemos de los procesos se encuentra en /proc, y queda a imaginación del programador las utilidades prácticas que puede tener conocer ésto, desde listar los procesos activos hasta saber si un programa pierde memoria...
Creo que en el comando man proc podreis encontrar toda la información que busqueis, pero si necesitais conocer algún campo o fichero de forma más concreta dejad un comentario.
|
|
Comentarios (6)
Menéame
Barrapunto
Technorati
Google Bookmarks
Fresqui
del.icio.us
VOTACIÓN:
(Núm. votos: 7)
|
|
RESPUESTA A Directorio /proc |
|
|
Autor: Anónimo(*)(*) _
URL
_
Tb ()
_
Categorias:
|
Te agradeceria que me dijeras como puedo empezar?
Gracias
|
|
RESPUESTA A Directorio /proc |
|
|
Autor: linuxcpp _
URL
_
Tb ()
_
Categorias:
|
Hacer un programa en C parecido a top que te muestre información de los procesos no es tan difícil. Ignoro tus conocimientos en C pero te oriento más o menos como empezar.
Para obtener la información de los procesos debes recorrer el directorio /proc (funciones opendir, readdir, etc). Todos los directorios que encuentres cuyo nombre sea un valor numérico (Ej: 8282) debes tratarlos como un proceso. El nombre numérico en cuestión será el PID del proceso; y para cada proceso te recomiendo que accedas a 3 de sus ficheros:
- PID_PROCESO/cmdline: que te ofrece con exactitud el nombre
- PID_PROCESO/stat: estadísticas como el estado, tiempos, prioridad, etc.
- PID_PROCESO/statm: estadísticas relacionadas con la memoria.
La principal idea es esta. Como decidas implementarlo es un poco cuestión tuya; yo quizás haría un programa en C que funcionara como demonio, y que usando señales desde otro programa iría mostrando la información recopilada por el demonio.
Si quieres conocer otros datos que muestra el comando top no tan relacionados con los procesos puedes preguntarme. Igualmente si no te queda claro algo preguntame, aunque intenta ser un poco más preciso, más que nada porque nose si conoces mucho de C o no.
Saludos.
|
|
RESPUESTA A Directorio /proc |
|
|
Autor: Anónimo(*)(*) _
URL
_
Tb ()
_
Categorias:
|
Eso es todo pero empezare con lo que me diste.
Muchas gracias.
|
|
RESPUESTA A Directorio /proc |
|
|
Autor: linuxcpp _
URL
_
Tb ()
_
Categorias:
|
En cuanto a lo de conocer la swap y la memoria física del sistema, puedes ver obtener toda esa información del fichero /proc/meminfo. Igual que si quieres conocer el tiempo que lleva el sistema en funcionamiento lo puedes ver en el fichero /proc/uptime, o los parámetros de load average que se encuentran en /proc/loadavg.
Saludos.
|
|
RESPUESTA A Directorio /proc |
|
|
Autor: Gabriela(*)(*) _
URL
_
Tb ()
_
Categorias:
|
|
|
RESPUESTA A Directorio /proc |
|
|
Autor: linuxcpp _
URL
_
Tb ()
_
Categorias:
|
El comando top muestra demasiada información y es díficil especificarte todo. De forma resumida más o menos lo comenté en comentarios anteriores, cómo y dónde se localiza la información más importante de los procesos y también de resúmenes de memoria, consumo de cpu, etc. Si me haces preguntas más específicas de como se calcula tal cosa, o de dónde se obtiene tal cosa, me sería más fácil ayudarte. Si lo prefieres, en la parte de arriba del blog está mi email, mandame un mail con tus dudas.
Saludos.
|
|
Escribe tu comentario |
Usuario de eXtreblog (sí/no)









Autor: 
Categorias: 