init (Español)
Init (abreviatura del término inglés initialization) es el primer proceso que se inicia durante el arranque del sistema. Es un demonio cuyo proceso continúa ejecutándose hasta que se apaga el sistema. Init es el ancestro directo o indirecto de todos los demás procesos, y adopta automáticamente todos los procesos huérfanos. El kernel lo inicia utilizando un nombre de archivo codificado. Si el kernel no puede iniciarlo, se producirá un «kernel panic». A init generalmente se le asigna el identificador de proceso (PID) 1.
Los scripts de init (o rc) son lanzados para garantizar la funcionalidad básica en el inicio y apagado del sistema. Esto incluye el (des)montaje del sistemas de archivos y el lanzamiento de los daemons. Un gestor de servicios va un paso más allá al proporcionar un control activo sobre los procesos ejecutados, o la supervisión de procesos. Un ejemplo es monitorear los bloqueos y reiniciar los procesos en consecuencia.
Estos componentes se combinan con el sistema init. Algunos inits incluyen el administrador de servicios en el proceso de inicio, o tienen scripts de inicio en estrecha relación con ellos. A estas entradas se hace referencia como «integradas», aunque las entradas en diferentes categorías pueden depender explícitamente entre sí.
Inits (integrados)
- anopa — Sistema de inicialización construido alrededor del conjunto de supervisión s6
- GNU Shepherd — Sistema de inicialización escrito en Guile.
- OpenRC — Sistema de inicialización basado en dependencias.
- systemd — Sistema de inicialización basado en dependencias con una notable paralelización, supervisión de procesos mediante cgroups y capacidad de depender de un punto de montaje dado o servicio dbus.
Inits
- BusyBox — Utilidades para sistemas de rescate e incrustados.
- ninit — Fork de minit
- http://riemann.fmi.uni-sofia.bg/ninit/ || ninitAUR[enlace roto: package not found]
- sinit — Init simple inicialmente basado en la inicialización mínima de Rich Felker.
- SysVinit — Sistema tradicional V de init.
Scripts de init
- initscripts-fork — Fork de los scripts de SysVinit mantenido en Arch Linux.
- minirc — Script de inicialización mínimo diseñado para BusyBox.
- https://github.com/hut/minirc/ || minirc-gitAUR[enlace roto: package not found]
Gestores de servicios
- daemontools — Colección de herramientas para gestionar servicios UNIX.
- https://cr.yp.to/daemontools.html || daemontoolsAUR[enlace roto: package not found]
- Monit — Monit es una herramienta de supervisión de procesos para Unix y Linux. Con monit, el estado del sistema se puede ver directamente desde la línea de órdenes o mediante el servidor web HTTP(S) nativo.
- perp — Supervisor de proceso persistente (servicio) y marco de administración para UNIX.
- http://b0llix.net/perp/ || perpAUR
- runit — Esquema de inicialización de UNIX con supervisión de servicio, un reemplazo para SysVinit y otros esquemas de init.
- https://smarden.org/runit/ || runitAUR[enlace roto: package not found]
- s6 — Pequeño conjunto de programas para UNIX, diseñado para permitir la supervisión del servicio en la línea de daemontools y runit.
Configuración
Migrar servicios en ejecución
Para ejecutar demonios bajo el nuevo init, guarde una lista de demonios en ejecución:
$ systemctl list-units --state=running "*.service" > daemons.list
y configure los #Scripts de init en consecuencia. Vea también [2].
logind
logind requiere que systemd sea el proceso de inicio. [3] Como tal, las sesiones locales y otras funciones no estarán disponibles.
- Permisos del dispositivo
Añada usuarios a los grupos de usuarios respectivos para acceder al dispositivo y reiniciarlo. La pertencia actual al grupo debe verificarse primero con id user
.
# usermod -a -G video,audio,power,disk,storage,optical,lp,scanner user
Consulte también Users and groups#Pre-systemd groups. Para crear reglas de grupo para usar con Polkit, vea Polkit#Bypass password prompt.
- Rootless X (1.16)
Como Xorg.wrap
no verifica si logind está activo [5], los derechos de root para Xorg deben activarse manualmente:
/etc/X11/Xwrapper.config
needs_root_rights = yes
- Administración de energía
Consulte pm-utilsAUR y acpid para reemplazar la administración de energía con systemd.
Tareas programadas
Arch utiliza los archivos timer en lugar de cron por defecto. Vea archlinux-cronjobs para conocer trabajos cron básicos.
Dbus
Las instancias de usuario de dbus-daemon son lanzadas por systemd/User [6]. Cuando requiera IPC (del inglés «comunicación inter procesos) entre aplicaciones de escritorio, restaure 30-dbus.sh
:
/etc/X11/xinit/xinitrc.d/30-dbus.sh
#!/bin/bash # launches a session dbus instance if [ -z "${DBUS_SESSION_BUS_ADDRESS-}" ] && type dbus-launch >/dev/null; then eval $(dbus-launch --sh-syntax --exit-with-session) fi
Consejos y trucos
systemd-nspawn
systemd-nspawn es una herramienta para sistemas systemd. Sin embargo, desde Linux 2.6.19 es posible ejecutar systemd en un sistema no systemd utilizando el espacio de nombres PID. Para ello, el kernel debe configurarse con CONFIG_PID_NS
y CONFIG_NAMESPACES
).
El espacio de nombres PID crea una nueva jerarquía de procesos que comienzan con PID 1. Además de esto, systemd requiere que se monte un sistema de archivos raíz enjaulado (chrooteado). Por lo tanto, debe al menos realizar un montaje de «bind», porque de lo contrario algunos servicios fallarán con:
"Failed at step NAMESPACE spawning" due to "Invalid operation"
dado que systemd intentará volver a montar la raíz con la opción private
.
Para configurar un entorno enjaulado (chroot) con un nuevo espacio de nombre PID puede usar jchroot.[7] [8].
Asegúrese de no montar /proc
dentro de la nueva raíz antes de realizar chroot, de lo contrario, systemd detectará el entorno chroot. Puede montarlo más tarde una vez que se esté ejecutando systemd.
Reemplazar udev
- eudev — eudev es un fork de udev iniciado por el proyecto Gentoo. Está diseñado y probado principalmente con OpenRC.
- https://wiki.gentoo.org/wiki/Eudev || eudevAUR eudev-gitAUR[enlace roto: package not found]
- mdev — Administrador de dispositivos para su utilización en sistemas integrados.