RAFA !!
Opciones Curso Básico de Linux

Control de Procesos


Con el comando ps o top que es interactivo se pueden ver los procesos (programas) que están funcionando en ese momento en el ordenador. Algunos de estos programas están funcionando de manera transparente desde el inicio del S.O. y se les denomina daemons, demonios, y son los encargados de que funcionen los distintos servicios que da el S.O. Entre otra información muestran el PID, un numero único en ese momento para cada proceso, que nos permitirá mas adelante modificar el proceso. Estos procesos se pueden controlar de varias maneras, pues es posible cambiarles la prioridad, para hacer que estén funcionando pase lo que pase, o solo en momentos de poco uso del ordenador, así como enviarlos a segundo plano, para poder seguir trabajando en el shell mientras se ejecutan, o terminarlos antes de tiempo: Si cuando lanzamos un programa añadimos & al final, este se ejecutara en segundo plano, devolviéndonos inmediatamente al prompt Un programa normal puede ser suspendido pulsando ctrl.-Z (recordemos el ZZZ de dormir) o cancelado con ctrl.-Z. Para continuar la ejecución de un programa suspendido escribiremos fg, o bg si queremos que se siga ejecutando en segundo plano. Jobs nos muestra que programas hemos ejecutado en esa sesión, así como cuales están parados y cuales funcionando en segundo plano, muestra además un numero después del signo %, que es relativo y puede ser utilizado en lugar del PID, p.e. bg %2 llevaría a segundo plano el penúltimo (el ultimo seria %1) programa que hallamos ejecutado (y que aun no halla terminado). Nice prioridad programa, o renice prioridad PID, permiten lanzar un programa con una prioridad diferente, o cambiar la de uno que ya se esta ejecutando, desde 20, que es la mínima prioridad, 0 la prioridad normal o -19 máxima prioridad (solo root puede poner prioridades negativas) Kill PID, termina el programa que tenga ese PID, killall programa, termina todos los programas que se ejecuten con ese nombre, es posible terminar el programa de diversas maneras, con Kill -9 o Kill -15, en función del tipo de terminación que queramos.

Servicios

Desde que se arranca el ordenador hasta que aparece login: se ejecutan una serie de programas, que se encargan de configurar el ordenador, y lanzar los diferentes demonios o servicios que estarán funcionando todo el tiempo. Para hacer mas versátil al ordenador, se le dotado de la posibilidad de definir niveles (quizás fuese mejor llamarlos roles, pues no todos son tienen un orden con respecto a los demás) en función de los servicios necesarios. Este sistema esta basado en el Unix System V, existe otra opción basada en el Unix BSD, pero no es tan utilizada. Así el nivel 0 se ejecuta al arrancar, el 6 al reiniciar y 1 es el modo monousuario, para administración. Los niveles 2 al 5 están disponibles para que el usuario defina hasta 4 roles de funcionamiento. Así p.e. el 5 suele ser el único en que se ejecuta el servidor grafico X, aunque todo esto es configurable. Existe un directorio /etc/init.d donde están shellscripts de cada uno de los servicios disponibles. Existen además una serie de directorios /etc/rc.N donde N es el runlevel, que contienen enlaces simbolicos a los shellscripts de /etc/init.d El nombre del enlace tiene una forma especial: XNNshellscript, donde X puede ser una S (Star) o un K (kill) y controlara que ese servicio se inicie o se termine al entrar en ese runlevel, después NN es la prioridad de ese servicio, servicios con la prioridad mas baja se iniciaran antes que aquellos con la prioridad mas alta, de esta manera es posible p.e. controlar que el servidor web (S80apache por ejemplo) no se inicie hasta que se haya iniciado la red (S30 network por ejemplo). Además de administrar los servicios a través de los nombre y los enlaces, están disponibles herramientas graficas una administración mas cómoda.



Inetd

Existe un tercer tipo de servicios, normalmente de red, que no se ejecutan como demonios, si no bajo demanda, estos servicios se controlan desde un archivo de texto en /etc/inetd.conf. El que un servicio, p.e. un servidor de paginas web, se ejecute como demonio o bajo demanda, dependerá del uso, si va ha ser intensivo, o solo se utilizara de vez en cuando. Además los demonios consumen mas memoria del sistema, pero los servicios de inetd tardan mas tiempo en empezar a funcionar.