arranque del sistema y servicios básicos - laboratorio ss.oo. [sistemas...
TRANSCRIPT
![Page 1: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/1.jpg)
Arranque del sistema yservicios basicos
Juan Hernando [email protected]
Administracion de sistemas UNIX/Linux
Curso 2012/2013
[email protected] Arranque del sistema y servicios basicos 1/33
![Page 2: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/2.jpg)
Arranque de sistemas UNIX
Secuencia de arranque simplificada
1 Arranque del sistema y comienzo de ejecucion delfirmware.
2 Inicio del cargador de arranque.3 Carga e inicio del nucleo del sistema operativo.4 Arranque del proceso init.5 Puesta en marcha servicios, sistemas de ficheros,
terminales, ...
[email protected] Arranque del sistema y servicios basicos 2/33
![Page 3: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/3.jpg)
Cargador de arranque (bootloader)El cargador de arranque
• Lanzado por el firmware del sistema (BIOS/UEFI/coreboot)• Normalmente almacenado en disco.• Carga el nucleo en memoria y le transfiere el control.
Arranque en arquitecturas PC
• La BIOS carga el programa situado en el MBR (masterboot record) del disco duro principal.
• Ese programa puede ser un cargador de otro programa enel VBR (volume boot record) de la particion activa.
Cargadores de arranqueGRUB (Linux, Solaris, ...), lilo (Linux), Boot Camp (Apple),bootblk/ufsboot (Solaris).
[email protected] Arranque del sistema y servicios basicos 3/33
![Page 4: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/4.jpg)
Inicializacion del kernel
Carga
• La localizacion de la imagen del nucleo varıa entre SO(/boot/vmlinuz (Linux), /unix (AIX), /kernel (FreeBSD),/kernel/geunix (Solaris)).
• El cargador de arranque sabe como acceder al sistema deficheros y cargar el nucleo en memoria.
• Tras la cargalo, el cargador le cede el control al nucleo,pudiendo pasarle alguna opcion en este instante (ej.init=/path/to/bin, acpi=off, single).
• Una particularidad de Linux es el initrd (Initial RAM disk),un disco RAM temporal con utilidades y modulos paramontar el sistema de ficheros raız.
[email protected] Arranque del sistema y servicios basicos 4/33
![Page 5: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/5.jpg)
Inicializacion del kernel
ArranqueEn cuanto el nucleo recibe el control ejecuta una serie depasos antes de lanzar el primer proceso.
1 Detectar la memoria disponible y reservarse algo.2 En Linux, descomprimir initrd y montarlo.3 Detectar y configurar el hardware.4 Montar el sistema de ficheros (normalmente como solo
lectura).5 Lanzar procesos espontaneos internos (kjournald,
kswapd, etc.).6 Lanzar el proceso init.
[email protected] Arranque del sistema y servicios basicos 5/33
![Page 6: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/6.jpg)
GRUBGRand Unified Bootloader
• Es el cargador de arranque por defecto de la gran mayorıade las distribuciones Linux sobre architecturas Intel.
• El proceso de carga se divide en dos etapas. Una en elMBR o VBR y la otra en /boot/grub.
Funcionalidades
• Arranca cualquier SO que cumpla con la especificacionmultiboot.
• Consola interactiva tipo bash
• Menu configurable.• Soporte para varios systemas de ficheros.• Opciones para el nucleo y cargadores initrd.• Transferencia del control a otro cargador (chain loading).
[email protected] Arranque del sistema y servicios basicos 6/33
![Page 7: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/7.jpg)
GRUB
GRUB Legacy
• Version antigua, sin desarrollo a dıa de hoy• Carga en 3 etapas:
1 Etapa 1, desde el sector de MBR (o VBR)2 Etapa 1.5 desde 30KB contiguous al primer sector de la
particion. Contiene codigo para entender el sistema deficheros donde se haya la etapa 2
3 Etapa 2. El codigo de GRUB en sı.
• Los ficheros del cargador se localizan en /boot/grub, enparticular el menu de arranque es menu.lst
[email protected] Arranque del sistema y servicios basicos 7/33
![Page 8: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/8.jpg)
GRUBGRUB 2
• Reescritura de GRUB para mejorar el soportemultiplataforma, internacionalizacion, carga de modulos, ...
• A dıa de hoy es el cargador de arranque usado en Debian,Fedora (y RHEL), openSUSE, Ubuntu y Solaris.
• El proceso de carga es muy similar, pero la etapa 1 esmas flexible a la hora de cargar la siguiente.
• Los ficheros del cargador tambien estan en /boot/grub,pero son distintos.
• El fichero menu.lst desaparece en favor de grub.cfg elcual soporta un lenguaje parecido al bash
• En Ubuntu ese fichero no esta pensado para ser editado amano sino por update-grub y las directivas presentes en/etc/grub.d/ y /etc/default/grub
[email protected] Arranque del sistema y servicios basicos 8/33
![Page 9: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/9.jpg)
GRUBEjemplos (GRUB version 1)
• Arranque de un sistema Linuxgrub> root (hd0,0)
grub> kernel /boot/vmlinuz root=(hd0,0)
grub> initrd /boot/initrd.img
grub> boot
• Arranque de un Windows con chain loadinggrub> rootnoverify (hd0,1)
grub> makeactive
grub> chainloader +1
grub> boot
Ejemplos (GRUB version 2)
• Arranque de un sistema Linuxgrub> set root=(hd0,1)
grub> linux /boot/vmlinuz root=(hd0,1)
grub> initrd /boot/initrd.img
grub> boot
• Arranque de un Windows con chain loadinggrub> insmod ntfs
grub> insmod chain
grub> set root=(hd0,2)
grub> chainloader +1
grub> boot
[email protected] Arranque del sistema y servicios basicos 9/33
![Page 10: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/10.jpg)
Proceso init
Padre de todos los procesos
• El proceso init es el proceso de PID 1 y el encargado dearrancar todos los servicios y dar acceso al sistema.
• El nucleo ejecuta por defecto el proceso /sbin/init
Secuencia de arranque multiusuario
1 Comprobar raız y montar en modo lectura-escritura2 Comprobar otros sistemas (/etc/fstab) y montarlos3 Activar el area de intercambio.4 Limpieza (ej. borrar /tmp)5 Arrancar demonios locales.6 Configurar la red y arrancar demonios de red.7 Habilitar el login.
[email protected] Arranque del sistema y servicios basicos 10/33
![Page 11: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/11.jpg)
Proceso init
• El codigo de la secuencia de arranque no es parte delproceso init en sı mismo.
• Esta secuencia se implementa como una coleccion descripts que son ejecutados por init de acuerdo conunas reglas preestablecidas.
• Una vez termina la secuencia de arranque el proceso initno termina (nunca lo hace), si no que queda a la esperade:
• La terminacion de cualquier proceso hijo para capturar suvalor de retorno y evitar que quede zombie.
• Alguna senal que indice que debe reconfigurarse elsistema.
[email protected] Arranque del sistema y servicios basicos 11/33
![Page 12: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/12.jpg)
Modo monousuario
• Tambien llamado modo de mantenimiento.• Modo de arranque especial para la solucion de problemas.• Consola root, sin red ni login.
[email protected] Arranque del sistema y servicios basicos 12/33
![Page 13: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/13.jpg)
Apagado del sistema
SecuenciaCuando se da la orden de apagado se lleva a cabo:
1 Notificacion a los usuarios el apagado con un mensaje2 Se envıa la senal SIG TERM a todos los procesos en
ejecucion.3 Init comienza la secuencia de terminacion de servicios.4 Paso a modo monousuario:
• Se envıa SIG KILL a los procesos que al cabo de 5segundos del envıo de SIG TERM aun no terminaron.
• Se desconecta a los usuarios y bloquea el acceso.
5 Sincronizacion de los sistemas de ficheros y desmontado.6 Apagado o reinicio.
[email protected] Arranque del sistema y servicios basicos 13/33
![Page 14: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/14.jpg)
Configuracion del arranque
Tipos de init
• Estilo BSD: NetBSD, FreeBSD, OpenBSD• System V: AIX, HP-UX, Linux, Solaris• Launchd: Mac OS/X• Upstart: Linux (Ubuntu, Fedora, Debian)• Systemd: Linux (y solo Linux, Fedora)
[email protected] Arranque del sistema y servicios basicos 14/33
![Page 15: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/15.jpg)
Configuracion estilo System VEste es el modo de configuracion clasico de la mayorıa de losUNIX y en especificado en el Linux Standard Base.
RunlevelsConcepto basico que se refiere al estado de sistema.• telinit n cambia el sistema al estado n• who -r devuelve el estado actual.• shutdown es un script para pasar al runlevel de apagado.
Componentes
• Fichero de reglas /etc/inittab
• Scripts primarios rcn (normalmente enlaces simbolicos)• Scripts secundarios (/etc/rc.d, /etc/init.d)• Ficheros de configuracion adicionales (/etc/default)
[email protected] Arranque del sistema y servicios basicos 15/33
![Page 16: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/16.jpg)
Clasificacion de Runlevels
• 0: Halt, para apagado seguro.• 1 Administracion mantenimiento.• S y s Modo monousuario (pide contrasena de root• 2 Modo multiusuario sin servicios de red.• 3 Modo multiusuario con servicios de red.• 4, 7-9 A definir por el administrador• 5: Igual que 3 con consola grafica• 6: Reinicio• Q y q: Pseudo estado para forzar la re-lectura/etc/inittab.
• a, b, c Pseudo-runlevel. No cambian el estado numerico.Solo ejecutan los mandatos presentes /etc/inittab
[email protected] Arranque del sistema y servicios basicos 16/33
![Page 17: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/17.jpg)
Fichero inittab
SintaxisUn serie de lıneas con el formato
id:niveles:accion:proceso args
• id: Identificador unico• niveles: Niveles en los que se ejecuta• accion: Modo de ejecucion• proceso args: Mandato a ejecutar y argumentos
[email protected] Arranque del sistema y servicios basicos 17/33
![Page 18: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/18.jpg)
Fichero inittab
Tipos de accionesEl campo accion le indica a init como debe ejecutar elproceso. Los tipos de accion habituales son:wait Se espera a que la tarea acabe.respawn Si la tarea termina, se relanza automaticamente.once Comenzar el proceso si no esta funcionando ya.boot Ejecutar solo al arranque.bootwait Ejecutar solo al arranque, esperando a que termine.initdefault Para definir el nivel por defecto
(no se especifica proceso en este caso).sysinit Actividades previas a que init acceda a la consola.off Terminar el proceso si esta ejecutando.otros man inittab
[email protected] Arranque del sistema y servicios basicos 18/33
![Page 19: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/19.jpg)
Fichero inittab
Ejemploid:3:initdefault:
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
2:2345:respawn:/sbin/mingetty tty2
ca::ctrlaltdel:/sbin/shutdown -r -t 4 now
[email protected] Arranque del sistema y servicios basicos 19/33
![Page 20: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/20.jpg)
Scripts de inicializacion rcn
• Uno o varios scripts normalmente en• Los scripts secundarios se almacenan en /etc/init.d y
se enlazan desde los directorios /etc/rc.d/ o/etc/init.d/rc.d/
• Los scripts secundarios se etiquetan y ejecutan en unorden predeterminado.
• Existen herramientas para manejar dependencias entrescripts y etiquetar los enlaces automaticamente (innserv,chkconfig, sysv-rc-conf)
K09cron K15portmap S01dbus S08nfs
K11nfsserver K16avahi-daemon S02consolekit S10kbd
K11postfix K16syslog S03haldaemon S10powersaved
K11xdm K17network S05network S10sshd
K12cups K19haldaemon S06avahi-daemon S11nfsserver
[email protected] Arranque del sistema y servicios basicos 20/33
![Page 21: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/21.jpg)
Arranque, parada, reinicio deservicios
Gestion manual
• El estado de los servicios presentes en /etc/init.d
puede manipularse manualmente.• El estado se cambia ejcutando el script con uno de los
argumentos:• start Arranca el servicio si no esta arrancado• stop• restart Para y rearranca el servicio• otros
• Los scripts de /etc/inid.d se pueden ejecutardirectamente pero es recomendable usar el mandatoservice para proporcionar un entorno mas seguro.
[email protected] Arranque del sistema y servicios basicos 21/33
![Page 22: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/22.jpg)
Arranque, parada, reinicio deservicios
Gestion automatica
• Normalmente la parada y arranque de serviciosesta gestionada por init a traves de los scripts/etc/init.d/rc, el cual se invoca desde /etc/inittab alcambiar de nivel de ejecucion.
• Al pasar de un runlevel inferior a uno superior X, losscripts /etc/rcX.d que empiezan por S se ejecutan enorden ascendente pasando el argumento start
• Al pasar de un runlevel inferior a uno superior X, losscripts /etc/rcX.d que empiezan por K se ejecutan enorden descendent pasando el argumento stop
[email protected] Arranque del sistema y servicios basicos 22/33
![Page 23: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/23.jpg)
Upstart
Introduccion
• Reemplazo de init para la gestion de servicios y tareaspor medio de eventos.
• Desarrollado por Canonical para Ubuntu, comienza aadoptarse por otras distribuciones.
Diferencias principales frente a SystemVNo inittab, /etc/event.d update-rc.d)
[email protected] Arranque del sistema y servicios basicos 23/33
![Page 24: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/24.jpg)
Upstart
Conceptos basicos
• Trabajos• Eventos
Elementos
• El proceso init.• Ficheros de configuracion (almacenados en /etc/init).• Mandatos de control (initctl, status, start, stop, ...).
[email protected] Arranque del sistema y servicios basicos 24/33
![Page 25: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/25.jpg)
Upstart: TrabajosTipos de trabajos
• Tareas Trabajos que tienen un instante de comienzo y findeterminado. No crean procesos nuevos. Ej: montar lossistemas de ficheros, configurar la red.
• Servicios Trabajos de que no tienen un instante determinacion determinado (demonios).
• Abstractos Trabajos sin proceso o script asociado.Existen solo dentro de Upstart (no tienen PID) y puedensirven para sincronizar otras tareas.
Especificacion de trabajosUn trabajo se especifica en un fichero .conf almacenado eninit. El nombre del fichero sin extension es el nombre deltrabajo.
[email protected] Arranque del sistema y servicios basicos 25/33
![Page 26: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/26.jpg)
Upstart: sintaxis de basicaSintaxis de fichero de configuracion
## Esto serıa un comentario
author "yo"
description "descripcion opcional"
## Tanto start on como stop on son opcionales
start on <event> [<variables_de_evento_a_encajar>]
stop on <event>
## A~nadir task si se trata de una tarea
# task
## Ahora irıa el codigo a ejecutar por el trabajo con
script
<codigo>
end script
## o
exec <mandato y argumentos>
[email protected] Arranque del sistema y servicios basicos 26/33
![Page 27: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/27.jpg)
Upstart: Trabajos
Estados de un trabajoObjetivo
Estado start stop
waiting starting n/astarting pre-start stoppingpre-start spawned stoppingspawned post-start stoppingpost-start running stoppingrunning stopping pre-stop or stoppingpre-stop running stoppingstopping killed killed
killed post-stop post-stoppost-stop starting waiting
[email protected] Arranque del sistema y servicios basicos 27/33
![Page 28: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/28.jpg)
Upstart: Eventos
Tipos de eventos
• Metodos: eventos bloqueantes para el emisor hasta que elevento se procesa. Se generan manualmente con initctl
emit evento.• Senales: eventos no bloqueantes para el emisor y
asıncronos. Se pueden generar con initctl emit
--no-wait evento.• Externos (hooks): eventos emitidos por otros demonios del
sistema como el demonio de dbus o el de udev.
Los cambios de estado generan eventos (starting, started,stopping, stopped, ver paginas man).Los eventos de sistema en Ubuntu se documentan enupstart-events(7).
[email protected] Arranque del sistema y servicios basicos 28/33
![Page 29: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/29.jpg)
Upstart: Ciclo de vida de un trabajo I
Arrancando trabajos
1 Los trabajos se arrancan manualmente con start id oinitctl start id o activados por el bloque start on.
2 Se emite starting como metodo (con las variables deentorno JOB e INSTANCE).
3 Si hay un bloque pre-start {script ... end script |exec} se ejecuta.
4 El proceso principal se lanza en un proceso nuevo.5 Si hay un bloque post-start, se ejecuta.6 Se emite el evento started.
respawn sirve para reintentar tareas y reerrancar servicios.
[email protected] Arranque del sistema y servicios basicos 29/33
![Page 30: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/30.jpg)
Upstart: Ciclo de vida de un trabajo IIParando trabajos
1 Las tareas cambian de objetivo start a stop al finalizar suproceso.
2 Se asume que los servicios no terminan a discrecion.3 El objetivo de un trabajo pasa a stop por invocacion de
initctl stop id, stop id o disparado por la clausulastop on.
4 Si hay un bloque pre-stop, se ejecuta.5 Se envıa SIG TERM al proceso, se espera 5 segundos y se
envıa SIG KILL
6 Se emite el evento stopping con informacion determinacion
7 Ejecutar el bloque post-stop se procede.8 Se emite el evento stopped.
[email protected] Arranque del sistema y servicios basicos 30/33
![Page 31: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/31.jpg)
Upstart: otros detallesRunlevels
• En las distribuciones Debian y Ubuntu solo se usan losrunlevels 1 o S (monousuario), 2 (multisuario), 0(apagado) y 6 (reiniciado).
• Los niveles 3-5 existen, pero no se usan.• Se pueden especificar clausulas dependientes del runlevelstart on runlevel 0
start on runlevel [234]
Depurando scripts
• initctl log-priority debug genera una traza en/var/log/syslog.
• console output redirecciona la salida a /dev/console.• env para la inspeccion del entorno.
[email protected] Arranque del sistema y servicios basicos 31/33
![Page 32: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/32.jpg)
D-bus
Introduccion
• Bus de sistema que proporciona mecanismos IPC(inter-process communication).
• Permite intercambio de mensajes entre aplicacionesbasado en un esquema de emisor/subscriptor.
• Desarrollado por el proyecto freedesktop.org• Usado por GNOME, KDE (> 4) y Qt 4.
[email protected] Arranque del sistema y servicios basicos 32/33
![Page 33: Arranque del sistema y servicios básicos - Laboratorio SS.OO. [Sistemas …laurel.datsi.fi.upm.es/_media/docencia/asignaturas/asi/... · · 2012-10-05Arranque de sistemas UNIX](https://reader031.vdocuments.site/reader031/viewer/2022022514/5af7b1377f8b9a44658b685f/html5/thumbnails/33.jpg)
D-busArquitectura
• Existe un demonio de sistema (dbus-daemon) y otro porsesion de usuario para dar servicio al resto aplicaciones.
• La funcionalidad de bajo nivel se implementa en unabiblioteca en C (libdbus).
• La communicacion se establece a traves de sockets UNIX.• Existen wrappers para Glib, Qt, C++ y Python entre otros.
Conceptos
• Nombres de bus org.freedesktop.DBus
• Interfaces org.nombre.interfaz
• Objetos (identificados con nombres similares a un sistemade ficheros /org/asi2012/test
[email protected] Arranque del sistema y servicios basicos 33/33