Gestion de procesos (Linux general)

Un proceso es cualquier instrucción o programa que en ese momento se está ejecutando en nuestro sistema. Todo proceso tiene un PID (Process IDentifier), es decir, un número que le identifica y le diferencia de todos los demás. Una característa importante es que todo proceso tiene un estado: corriendo, durmiendo, zombie o parado.

El comando kill

El comando kill nos permite interactuar con cualquier proceso mandando señales (signal). Cuando ejecutamos kill pid lo que hacemos es mandar la señal de TERM(terminar) con lo cual se termina ese proceso. Podemos usar cualquier otro tipo de señal, para ello utilizamos kill signal pid. Podemos conseguir una lista de señales usando kill -l. Una señal útil para alunas ocasiones es -9, esta señal fuerza a terminar cualquier proceso. Como su nombre indica, estamos matando el proceso.

También podemos utilizar el comando killall con el que podemos mandar señales a un proceso utilizando el nombre, en vez del PID.

Entre los procesos diferenciamos los que se están ejecuntando en 1er o 2o plano. Los que se ejecutan en primer plano son los que interactúan con el usuario en ese momento, mientras que los procesos en segundo plano se ejecutan pero están ocultos, y muy posiblemente el usuario no tenga constancia de que se esté ejecutando. Sólo puede haber un proceso en primer plano por consola. Eso nos deja las manos atadas si no estamos en el entorno gráfico. Para poder ejecutar varios comandos, lo que podemos hacer es ejecutar los comandos en segundo plano. Para ello solo tenemos que añadir & al final del comando. Vamos a poner un ejemplo:

$ls -R / > /dev/null &

En el anterior ejemplo listamos todos los ficheros de todos los directorios del sistema. Enviamos la salida a /dev/null para que su salida no nos moleste. El carácter & manda el proceso a segundo plano. El comando jobs nos muestra los procesos que se están ejecutando en segundo plano:

$ls
[1]+ Running ls –color -R / >/dev/null &

Aquí estamos ejecutando el comando anterior. El elemento [1] nos indica el número del proceso que se están ejecutando en segundo plano y cuál es su estado. En este caso Running(corriendo). Seguidamente nos muestra cuál es el proceso Podemos utilizar también el comando fg para mandar un proceso al primer plano y el comando bg para mandar el proceso al segundo plano.

$fg
ls –color -R / >/dev/null

fg manda el proceso al primer plano y nos muestra el programa que ha mandado. Si tenemos varios procesos en segundo plano añadimos el número del proceso.

El comando bg se utiliza cuando tenemos, por ejemplo, procesos suspendidos. Estos procesos son programas que están parados, es decir, no consumen ni CPU ni memoria, y que podemos volver a poner en archa en cualquier momento. Para suspender un proceso utilizamos la combinación de teclas Ctrl-z, al igual que para interrumpir un proceso utilizamos Ctrl-c.

$jobs
[1]+ Stopped ls –color -R / >/dev/null

Esta tarea está parada(Stopped).

El comando ps

El comando ps permite mostrar todos los procesos que están corriendo en nuestro sistema. Veamos una parte de una salida del comando ps:

$ps -aux
faraox@menut:~/doc/glup_0.6-1.1-html-1.1$ ps xau
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 1272 436 ? S 16:00 0:04 init [2]
root 2 0.0 0.0 0 0 ? SW 16:00 0:01 [keventd]
root 3 0.0 0.0 0 0 ? SW 16:00 0:00 [kapmd]
faraox 1363 0.0 0.8 2740 1564 pts/2 S 18:57 0:00 -bash

Los parámetros xau nos permiten ver todos los procesos que se están ejecutando. El parámetro a muestra lo que se está ejecutando en las tty conocidas, el parámetro x añade los procesos que no se conece la tty en la que se están ejecutando y u muestra los usuarios que están ejecutando esos procesos.

Algunas partes de la salida le serán conocidas. La columna USER nos dice que usuario está ejecutando el proceso,PID es su número de proceso, %CPU es el porcentaje de CPU que está utilizando al igual que %MEM es el porcentaje de memoria. También incluye la cantidad de memoria en kylobytes que ha utilizado dicho proceso, se muestra en la columan RSS.La columna TTY muestra la consola desde la que se está ejecutando. STAT nos muestra el estado del proceso:S(drmiendo), R(corriendo), T(parado), Z(zombie). Las opciones W y N son especiales para procesos del kernel. La columna START muestra la hora a la que empezó el proceso, y la columna TIME muestra el tiempo de CPU que ha usado el proceso desde que se inició y COMMAND muestra el nombre del comando que se está ejecutando.

El comando top

El comando top es una utilidad que permite la monitorización de los procesos de la CPU. También muestra el estado de la memoria. Es una mezcla del comando uptime, free y ps.

20:07:54 up 4:07, 5 users, load average: 0.07, 0.05, 0.05
60 processes: 58 sleeping, 1 running, 0 zombie, 1 stopped
CPU states: 0.4% user, 0.6% system, 0.0% nice, 99.0% idle
Mem: 182900K total, 172404K used, 10496K free, 35064K buffers
Swap: 96352K total, 14284K used, 82068K free, 43228K cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
1565 faraox 14 0 1040 1040 820 R 0.5 0.5 0:00 top
300 root 9 -10 24736 9.9M 1524 S

Despues de mi arreglo de nariz …

Bueno pos eso k me he arreglado la nariz asi que he renovado fuerzas pa intentar hacer lo menso posible xddddd.

Con todo os digo k se me ha ocurrido la feliz idea de introducir Gentoo por aquí , ya que después de machar a amis pobres ordenadores con todo tipo de distro ,la ultima que me que da por machacar es gentoo así habrá que probarla en breve…….

Poner a Español Slack” Esposible !!! “


Bueno al arracar viene en Ingles pero eso se puede solucionar , tal y como funciona linux es se configura en función de unas variables las cuales modificamos en una consola temporalmente para alguna acción por medio de export . En el arranque se cargan y esta en algún fichero , por supuesto el fichero esta en /etc/ todo esta aquí siempre ,xdddd . Pues ahora se trata de modificar una o dos variables , la que nos interesa es $LANG , si esta variable es igual a es_ES el sistema seleccionara para todos los programas el español , en base al estándar i18-n que no es mas que una colección de ficheros de texto donde se escriben todos los texto de los programas y así es mas fácil de intercambian lenguajes , en nuestro caso es el es_ES@Euro . en /etc/profile ( intuitivo , el lenguaje se cambiar el el perfil del sistema , ” profile.d” ) hay varios scripts y el que nos interesa esta relacionado con lang , así que buscamos uno que se parezca y lo editamos con pico nano vi , el que nos guste . Dentro tendremos las variable $LANG para modificar. Después salimos guardando y reiniciamos el sistema , es la forma más segura porque ejecutando source profile no me ha funcionado nunca completamente .

A partir de ahora todos los programas que haya i18n en español serán seleccionados incluso si bajamos el man es español también solo que habrá que modificar algo para ver nuestra tan añorada “ñ”

Bueno esto es todo esto es todo totototo todo amigos….

Configuracion Generica XFree86


Para situarnos ahora veremos un sistema nuevo , solo para los que viene de windows , de como funciona las ventanas y como están distribuidas.

Lo primero es la estructura , tenemos un sistema base cuyo interface es una consola , interprete de comandos, después tenemos un servidor de X , que no es mas que un programa que se ha externalizado y es el que controla el hardware ,por tanto si hay que configurar una gráfica tendremos que modificar valores del servidor . Después tenemos los entornos gráficos , las ventanas , KDE y GNOME son los mas importantes y cada uno responde auna filosofía de uso y formas . Estos no son los único también existen los de bajo peso , una de las maravillas de S.O. Linux es poder usar ventanas que usen pocos recursos , para dejarlos libres y que la verdadera potencia del pc sea usada en nuestras actividades . volviendo a nuestros cauces el seleccionar un entorno es trivial los mas importantes son también los mas completos y los mas fáciles de usar , su configuración es trivial ( tipo windows) .

Ahora vamos a lo verdaderamente importante , el Servidor de X “XFree86” , es una herramienta anexa al sistema operativo , desarrollada aparte y como tal en todas sus formas , independiente de la distribución ( Debian , Slackl , Fedora , RedHat , Mandrake … ) siempre tiene su programa de configuración , aun que podamos tener uno diseñado por las distro también para hacer lo mismo ,por esto denomine Configuración Genérica, ahora los nombres de esto programas son xfree86config viejo donde los aya es una herramienta para configurar las x en las que no necesita arrancar x , por tanto ser haciéndonos preguntas se hará la configuración . La segunda herramienta es xfree86cfg este es mas molón , tiene una interfaz gráfica cojonuda (para los que vengan de windows nop) donde podemos ver todo nuestro servidor x . Aquí hay que tener cuidado es fácil de usar , en lineas generales hay que añadir un grafica , si la hay modificamos sus configuraciones , que son solo bus , que lo optenemso del comando lspci en otra consola y el driver que usa , hay una lista grande donde tenemos que seleccionarlo . Después de la gráfica podemos modificar también la disposición del teclado que a veces esta en ingles y es un coñazo , también deberemos añadir ratones , esto es un truco muy bueno ya que no se sobreponer las configuraciones y si tienes un portátil lo mejor es tener los dos siempre activos , el como es añadiendo dos ratones cada uno con su protocolo , usb y ps2 .

Después de todo esto hay que guardar las configuraciones , la ruta normal es /etc/X11/ , las rutas depende de la distro , pero si no las encuentra en su sitio predefino siempre pasa por esta carpeta , pero si las encuentra por mucho k modifiquemos esta carpeta no nos va a servir de mucho .

Ya hemos acabado tenemos un Servidor X funcionando , siempre que sepamos el driver que necesitamos , su bus , y no cambiemos las cosas al “tuntun” ( en eso yo soy un profesional )

Servicios en Ubuntu

Los servicios o demonios son procesos que se ejecutan automáticamente al arrancar el sistema o al llamarlos y que esperan cualquier petición. Es el caso por ejemplo de Apache, Qmail, SSH, etc. Los servicios normalmente se inician al iniciar el sistema, pero podemos iniciarlo(start), pararlo(stop) o reiniciándolo, sería así: /etc/init.d/servicio opción.

Para configurar el servicio cuando arrancamos el sistema, podemos usar el comando update-rc.d. Este comando crea o elimina los enlaces a los diferentes directorios de runlevels.

  • Para que no se inicie automáticamente:
    • update-rc.d -f servicio remove.
  • Para que se inicie automáticamente:
    • update-rc.d -f servicio defaults.

Para añadir un servicio, simplemente creamos el script de nuestro servicio en Bourne Shell Script y lo copiamos al directorio /etc/init.d/.