Cada vez que inicia un nuevo proceso en Linux, se crea un archivo en la carpeta /proc/ con el mismo nombre que la identificación del proceso. En esa carpeta, hay un archivo llamado «estado» que tiene todos los detalles del proceso. Podemos obtener esa información de proceso a través de shell de la siguiente manera:
cat /proc/1/status
Como puede verse, muestra la mayor parte de la información sobre el proceso.
Nota: En este caso, la identificación del proceso es 1, se puede cambiar según sea necesario.
Puede obtener la información del sistema a través del shell . La información básica del sistema se almacena en un archivo llamado os-release en la carpeta /etc/.
cat /etc/os-release
También puede obtener la información del sistema mediante la programación en C. El siguiente código se utiliza para obtener los detalles del sistema. En este código, utsname mantiene una estructura que tiene los detalles del sistema como sysname nodename, release, version, etc.
#include<stdio.h> #include<stdlib.h> #include<errno.h> #include<sys/utsname.h> int main() { struct utsname buf1; errno =0; if(uname(&buf1)!=0) { perror("uname doesn't return 0, so there is an error"); exit(EXIT_FAILURE); } printf("System Name = %s\n", buf1.sysname); printf("Node Name = %s\n", buf1.nodename); printf("Version = %s\n", buf1.version); printf("Release = %s\n", buf1.release); printf("Machine = %s\n", buf1.machine); }
En la ejecución, el código anterior dará el siguiente resultado:
Para obtener información del proceso mediante la programación en C, utilice el siguiente código. En este código, ejecutamos el comando de Linux a través del programa ac para obtener los detalles del proceso.
#include<stdio.h> #include<stdlib.h> int main() { int r=system("cat /proc/1/status"); }
En la ejecución, el código anterior dará el siguiente resultado: