Estoy aprendiendo la línea de comandos de un libro llamado " Linux Command Line and Shell Scripting Bible, Second Edition ". El libro dice esto:
Algunas implementaciones de Linux contienen una tabla de procesos para iniciarse automáticamente en el arranque. En los sistemas Linux, esta tabla generalmente se encuentra en el archivo especial / etc / inittabs.
Otros sistemas (como la popular distribución de Ubuntu Linux) utilizan la carpeta /etc/init.d, que contiene scripts para iniciar y detener aplicaciones individuales en el momento del arranque. Los scripts se inician a través de entradas en las carpetas /etc/rcX.d, donde X es un nivel de ejecución.
Probablemente porque soy nuevo en Linux, no entendí lo que significaba el segundo párrafo citado. ¿Alguien puede explicar lo mismo en un lenguaje mucho más claro?
fuente

Respuestas:
Vamos a olvidar
init.dorcx.dy mantener las cosas muy simple. Imagine que está programando un programa cuya única responsabilidad es ejecutar o eliminar otros scripts uno por uno.Sin embargo, su próximo problema es asegurarse de que funcionen en orden. ¿Cómo realizarías eso?
Y imaginemos que este programa buscó dentro de una
scriptscarpeta para ejecutar los scripts. Para ordenar la prioridad de los scripts, debe nombrarlos en un orden numérico. Este orden es lo que dicta la relación entreinit.dyrcEn otras palabras,
init.dcontiene los scripts para ejecutar yrcX.dcontiene su orden de ejecución.El
Xvalor enrcX.des el nivel de ejecución. Esto podría traducirse libremente al estado actual del sistema operativo.Si cava dentro de los
rcX.dscripts, encontrará este formato:Xse reemplaza conKoS, que significa si el script debe estarkilledostarteden el nivel de ejecución actualxxes el número de ordenabcdes el nombre del script (el nombre es irrelevante, sin embargo, donde apunta es el script que se ejecutará)fuente
Existen varios sistemas init diferentes para Linux. Los principales son SysVinit (el tradicional), Upstart (reemplazo de Ubuntu) y SystemD (impulsado por Fedora y Gnome). Los directorios
/etc/init.dy/etc/rc?.dson utilizados por SysVinit. El libro puede mencionarlos con respecto a Ubuntu porque la información está un poco anticuada (Ubuntu solía usar SysVinit como todos los demás) o porque esos directorios todavía existen por compatibilidad./etc/init.dcontiene un montón de scripts, cada uno con instrucciones para iniciar y detener un servicio. Algunos de estos servicios deben iniciarse en el momento del arranque; otros deben iniciarse en modo multiusuario pero no en modo de mantenimiento de usuario único; y es posible definir diferentes modos con diferentes conjuntos de servicios deseados. SysVinit maneja esto a través de los niveles de ejecución . El directorio/etc/rc$N.dcontiene los scripts para ejecutar al ingresar el nivel de ejecución N (/etc/rc$N.d/S*) y los scripts para ejecutar al salir del nivel de ejecución N (/etc/rc$N.d/K*). Debido a que muchos niveles de ejecución tienen secuencias de comandos en común, en lugar de almacenar una copia de las secuencias de comandos para cada nivel de ejecución, las secuencias de comandos se almacenan en una única ubicación/etc/init.dy los directorios específicos del nivel de ejecución/etc/rc?.dcontienen enlaces simbólicos. Además, los nombres de los enlaces simbólicos indican si el servicio se debe iniciar (S*) o detener (eliminarK*) en ese nivel de ejecución, y se utiliza un prefijo numérico para controlar el orden en que se ejecutan los scripts.El script responsable de la travesía
/etc/rc$N.des/etc/init.d/rc(en Ubuntu pre-Upstart y en Debian; las ubicaciones pueden variar en otras distribuciones de Linux).fuente
/etc/init.dy/etc/rc?.dmás, y tiene Upstart en su lugar?/etc/init.d( en lugar de.confarchivos Upstart/etc/init), por lo que Upstart todavía es compatible/etc/init.dy/etc/rc?.dpor compatibilidad./etc/init.des el directorio al que pertenecen los scripts de inicio.Aquí
etc/rcX.des donde los enlaces controlan qué servicios se eliminan o inician al ingresar al nivel de ejecuciónX. Los archivos quercX.dcomienzan con K se ejecutan con el parámetrostopy los archivos que comienzan conSse ejecutan con el parámetrostart. Es típico secuenciar el inicio y el fin de la orden usando un número de dos dígitos después deKoS. Para garantizar el correcto inicio y finalización del pedido, es común que las dos secuencias sumen 100.Los programas se pueden deshabilitar en un nivel de ejecución eliminando los enlaces o cambiando el caso de
KoShaciakos.EDITAR: Los administradores generalmente ejecutan los scripts desde los
/etc/init.dcuales puede haber un enlace simbólico a otro directorio dependiendo de la distribución. (Diferentes distribuciones tienen diferentes estándares).El
rcX.dcódigo de inicialización los utiliza para cambiar los niveles de ejecución.fuente
/etc/init.des un enlace simbólico al directorio bajo/etc/rc.d/init.d/etc/init.des inútil sin/etc/rcX.d? Y dado/etc/rcX.dque el controlador de los programas que se inician al inicio, su función es similar a la de/etc/init.d¿correcto?Aunque @BillThor lo ha respondido muy bien, aquí tengo mi comprensión
/etc/rcX.dy/etc/init.d:/etc/init.dcontiene scripts para iniciar y detener aplicaciones individuales en el momento del arranque./etc/rc?.dLos directorios representan varios niveles de ejecución y los scripts que contiene no son más que enlaces simbólicos a los scripts reales en el/etc/init.ddirectorio. Cambiar los niveles de ejecución cambia el modo del sistema, como el modo de usuario único muy básico al modo de solo consola a la interfaz gráfica avanzada.Por lo tanto, no hay uso de
/etc/rc?.ddirectorios sin el/etc/init.dpropio (y, por supuesto, viceversa).fuente