Capítulo 4. init: SystemV, Upstart, Systemd

Get Started. It's Free
or sign up with your email address
Capítulo 4. init: SystemV, Upstart, Systemd by Mind Map: Capítulo 4. init: SystemV, Upstart, Systemd

1. es el primer proceso (o tarea) a nivel de usuario que se ejecuta en el sistema y continúa funcionando hasta que el sistema se apaga.

1.1. Proceso init

1.2. • El objetivo eran sistemas multiusuario de tipo mainframe (y no ordenadores personales, portátiles y otros dispositivos). • El objetivo era un sistema de procesador único. • El tiempo de inicio (y apagado) no era un asunto importante; era mucho más importante hacer que las cosas funcionaran bien.

2. Alternativas de arranque

2.1. 1. Upstart fue desarrollado por Ubuntu y fue incluido por primera vez en el lanzamiento de la versión 6.10 en el 2006 y pasó a ser utilizado por defecto en el lanzamiento de la versión 9.10, el 2009. También fue adoptado en Fedora 9(en el 2008) y en RHEL 6 y sus clones, tales como CentOS, Scientific Linux y Oracle Linux. En openSUSE fue ofrecido como una opción desde la versión 11.3. También se ha utilizado en varios dispositivos embebidos y móviles.

2.2. 2. systemd es más reciente y Fedora fue la primera distribución de las principales en adoptarlo en el 2011.

2.3. SysVinit y /etc/inittab

2.3.1. id:runlevel(s):action:process

2.3.1.1. • id: un identificador único de 1 a 4 caracteres para la entrada. • runlevel(s): cero o más caracteres individuales o identificadores de dígitos, el que indica en qué nivel de ejecución se realizará la acción. • action: describe la acción a ser realizada. • process: especifica el proceso a ser ejecutado.

3. a. service

3.1. $ sudo service network status Configured devices: lo eth0 eth1 eth2 wlan0 Currently active devices: lo eth0 $ sudo service vsftpd status vsftpd (pid 5284) is running...

3.1.1. ejemplo

3.1.1.1. $ sudo service network Usage: /etc/init.d/network {start|stop|restart|reload|status} $ sudo service iptables Usage: /etc/init.d/iptables {start|stop|restart|condrestart|status| panic|save}

4. b. service

4.1. $ sudo service—status-all acpid (pid 4170) is running... anacron (pid 4540) is running... atd (pid 4553) is running....... smartd (pid 4614) is running... smbd is stopped......

5. Systemd

5.1. • Es compatible con los scripts de SysVinit. • Inicia más rápido que los sistemas anteriores. • Provee altas capacidades de paralelización. • Usa socket y activación D-Bus para iniciar servicios. • Reemplaza scripts de shell scripts con programas. • Ofrece inicio de demonios sobre demanda. • Realiza seguimiento de los procesos usando cgroups. • Soporta la creación de snapshots y restauración del estado del sistema. • Mantiene puntos de montaje y automontaje. • Implementa una elaborada lógica de control de servicio basada en dependencia transaccional. • Puede trabajar como un reemplazo de SysVinit.

5.1.1. • /etc/vconsole.conf: mapa de teclado por defecto y fuente de consola. • /etc/sysctl.d/*.conf: directorio para los parámetros sysctl del kernel. • /etc/os-release: archivo de ID de la distribución.

6. Utilidades de Upstart

6.1. $ initctl options command

6.2. start: Inicia un proceso

6.3. stop: Detiene un proceso

6.4. restart Reinicia un proceso

6.5. reload Envía la señal HUP a un proceso

6.6. status Consulta el estado de un proceso

6.7. list: Lista los procesos conocidos

6.8. emit Emite un evento

7. objetivos

7.1. • Entender la importancia del proceso init. • Explicar cómo funciona el método tradicional de SysVinit, cómo incorpora los niveles de ejecución y qué sucede en cada uno. • Saber usar chkconfig y service (y utilidades alternativas) para iniciar y detener servicios o hacerlos persistentes luego del reinicio del sistema. • Entender por qué surgieron los métodos alternativos Upstart ysystemd y cómo funcionan. • Usar systemctl para configurar y controlar systemd.

8. Scripts de inicio de SysVinit

8.1. $ ls -lF /etc/rc.d/rc5.d

8.1.1. total 0 lrwxrwxrwx. 1 root root 14 Sep 3 10:05 K05pmcd -> ../init.d/pmcd* lrwxrwxrwx. 1 root root 14 Sep 3 10:05 K05pmie -> ../init.d/pmie* lrwxrwxrwx. 1 root root 18 Sep 3 10:05 K05pmlogger -> ../init.d/pmlogger* lrwxrwxrwx. 1 root root 15 Sep 3 10:05 K05pmmgr -> ../init.d/pmmgr* lrwxrwxrwx. 1 root root 17 Sep 3 10:05 K05pmproxy -> ../init.d/pmproxy* lrwxrwxrwx. 1 root root 16 Sep 3 10:05 K05pmwebd -> ../init.d/pmwebd* lrwxrwxrwx 1 root root 37 Sep 6 08:50 K08vmware-USBArbitrator -> /etc/rc.d/init.d/vmware-USBArbitrator* lrwxrwxrwx. 1 root root 20 Sep 3 03:57 K50netconsole -> ../init.d/netconsole* lrwxrwxrwx. 1 root root 17 Sep 3 09:39 S10network -> ../init.d/network* lrwxrwxrwx 1 root root 16 Sep 6 08:50 S19vmware -> ../init.d/vmware* lrwxrwxrwx. 1 root root 17 Sep 3 04:04 S20iprinit -> ../init.d/iprinit* lrwxrwxrwx. 1 root root 19 Sep 3 04:04 S20iprupdate -> ../init.d/iprupdate* lrwxrwxrwx. 1 root root 17 Sep 3 10:05 S21iprdump -> ../init.d/iprdump* lrwxrwxrwx 1 root root 17 Sep 6 08:51 S25vmamqpd -> ../init.d/vmamqpd* lrwxrwxrwx 1 root root 37 Sep 6 08:50 S50vmware-USBArbitrator -> /etc/rc.d/init.d/vmware-USBArbitrator* lrwxrwxrwx. 1 root root 15 Sep 3 03:59 S97rhnsd -> ../init.d/rhnsd*

9. chkconfig

9.1. chkconfig se  utiliza  para  consultar  y configurar  en  qué  runlevels  van  a  correr  los diferentes servicios del sistema.

9.1.1. ejemplos

9.1.1.1. $ chkconfig some_service

9.1.1.2. Ver qué servicios están configurados para correr en cada uno de los runlevels:

9.1.1.3. $ chkconfig—list [service names]

9.1.1.3.1. Configurar un servicio para que se ejecute en el próximo reinicio:

9.1.1.4. $ sudo chkconfig some_service on

9.1.1.4.1. Configurar un servicio para que no se ejecute en el próximo reinicio:

9.1.1.5. $ chkconfig some_service off

9.1.1.5.1. Tenga en cuenta que las operaciones on y off no inciden en el estado actualdel servicio para iniciarlo o detenerlo. Esto se realiza de la siguiente forma:

9.1.1.6. $ sudo service some_service [ stop | start ]

10. Upstart es manejado por eventos

10.1. /etc/init/rcS.conf /etc/rc-sysinit.conf /etc/inittab /etc/init/rc.conf /etc/rc[0-6].d