miércoles, 9 de abril de 2008

Que pasa ahi dentro ??

No se vosotros, pero desde que ando con maquinas; que siempre me han hecho esperar. Siempre me pregunto que narices están haciendo para no hacer caso de lo que les mando. Más todavía si tengo prisa y me empieza a ir el lenta la maquina.

En este post os pretendo presentar los diferentes comandos que hay para ver que programas, procesos, módulos del kernel y servicios se están ejecutando en vuestra maquina.

Para ver los procesos que se están ejecutando en vuestra maquina podéis usar los siguientes comandos :

Para listarlos :
$ ps -ef
$ ps -aux

Para matarlos :
$ kill -s [numero de señal a enviar al proceso] [nombre del proceso]
$ killall [nombre del proceso]

Nota para listar los numeros de señales que se le envian a los procesos usar :
$ kill -l

Para arrancarlos :
$ [ejecutar el comando en cuestion]


En lo referente a los servicios difieren un poco a los procesos en lo que se refiere al control de su ejecución por que ya traen implementado un script para arrancarlos, pararlos, detenerlos,... Estos scripts se encuentran en /etc/init.d/. Si queremos ver que servicios se están ejecutando (nota : también aparecen con el resto de comandos cuando se usa el comando ps) en el directorio /var/run se encuentran unos ficheros *.PID que indican que servicios están arrancados. Si hacemos un cat del fichero en cuestión. La salida sera el PID (proccess identificator) del proceso que se esta ejecutando. La información del PID del proceso es bastante importante , primero porque los números que se asignan siguen una norma (cuanto más bajo mas prioritario es el proceso, la regla y la función que genera este número es más compleja que esta simple regla que acabo de mencionar), segundo porque con ese numero se identifican los programas en nuestra maquina. Al comando kill se le puede pasar como parámetro el pid para que mate el proceso.

Se me olvidaba lo más importante, la diferencia entre en un servicio un proceso, es que un servicio es un proceso que se esta ejecutando continuamente. Ejemplos el cron (programador de tareas), cupsys (servicio de impresión), ...

Por otra parte los servicios , aunque los puede lanzar el usuario normalmente los lanza ubuntu cuando arranca, esto evidentemente depende del servicio que sea, por esta razón existen los scripts para arrancarlos, pararlos, etc...

Los comandos que vamos a usar son los siguientes :

Para listar servicios en ejecución
$ ls /var/run *.PID

Para listar servicios disponibles
$ ls /etc/init.d/

Para Arrancar, Parar, Reiniciar Servicios
$ /etc/init.d/[script del servicio] [start | stop | restart]
ej : /etc/init.d/cron restart

Si queremos que un servicio no se cargue en el arranque basta con quitarle los permisos de ejecución al script de /init.d/

$ chmod -x /etc/init.d/[nombre del script del servicio]

y para volver a darle permisos

$ chmod +x /etc/init.d/[nombre del script del servicio]


Por ultimo y no menos importante los modulos del kernel, es el ultimo tipo de "procesos" que están consumiendo recursos de nuestra maquina. Os puede interesar saber que módulos carga por si hay algunos que no estais utilizando como pueden ser el bluethooth, pcmciautils (si no usais portatil), ipv6 o algún otro. Por otra parte lo bueno de estos comandos es que sirven para evitar reiniciar la maquina , si se os queda colgado el driver de la Wi-Fi o algun modulo del kernel , en vez de reiniciar siempre podéis descargar y cargar el modulo otra vez en vez de reiniciar y hacerlo con todos los modulos.

Listar módulos cargados
$ lsmod

Descargar un modulo
$ rmmod [nombre_del_modulo]

Cargar un modulo
$ modprobe [nombre_del _modulo]





No hay comentarios: