¿El /etc/init.d
directorio de ubuntu es exactamente equivalente (funcionalmente) a lo que presumo que es el más estándar /etc/rc.d/
(al menos en el arco)? ¿Hay alguna razón particular por la que canonical usa init.d en lugar de rc.d para los scripts de inicio?
ubuntu
init-script
Falmarri
fuente
fuente
/etc/rc.d
que he visto ... Sospecho que podría usarse en bsd.Respuestas:
Ubuntu usa
/etc/init.d
para almacenar scripts de SysVinit porque Ubuntu se basa en Debian y eso es lo que usa Debian. Usos de Red Hat/etc/rc.d/init.d
. Olvidé lo que usa Slackware. Simplemente no hay una ubicación estándar.Ubuntu está en el proceso de cambiar de SysVinit a Upstart , que utiliza archivos de configuración en
/etc/init
.fuente
/etc/init.d
. La transición/etc/init/*.conf
comenzó más tarde (8.04 todavía era todo estilo SysV, 10.04 ya estaba en transición)./etc/init.d era la antigua ubicación histórica de SVR4. Olvidé por qué redhat agregó el nivel /etc/rc.d/. Creo que aislar las cosas en rc.d, pero de todos modos necesitaba agregar un montón de enlaces simbólicos para la compatibilidad con versiones anteriores. Por lo tanto, hay /etc/init.d en redhat, solo enlaces simbólicos en otros lugares.
Entonces, la ubicación estándar es /etc/init.d, aunque puede ser un enlace simbólico, no un directorio real.
Hubo algunas distribuciones de Linux realmente antiguas que copiaron BSD con /etc/rc.local pero ya casi nadie lo usa.
fuente
Slackware todavía usa
/etc/rc.d
FreeBSD utiliza
/etc/rc.d
y/usr/local/etc/rc.d
fuente
Históricamente, el
/etc/rc.d
árbol de directorios denota un sistema Init que sigue la tradición 4.4 BSD de inicialización del sistema, que generalmente se denominarc
sistema init. Todos los sistemas BSD modernos (gratuitos / abiertos / netos) y Slackware Linux siguen esta tradición.El
/etc/init.d
árbol de directorios denota el sistema de inicio del Sistema V (SysV) que sigue la tradición de inicialización del sistema AT&T UNIX, SunOS, Solaris. Esto se llama comúnmente el sistema SysV Init. Debian propiamente sigue esta tradición en la serie Wheezy, pero planea usar SystemD en la serie Jessie. Históricamente, RedHat y sus derivados han usado SysV Init, pero ya no lo hacen.Además, con el tiempo, las distribuciones han adoptado las características de ambos esquemas init.
fuente
En realidad, al menos en CentOS 6.8 Santiago,
/etc/init.d
es solo un enlace suave a/etc/rc.d
.fuente
PuppyLinux tiene tanto /etc/rc.d como /etc/init.d , ninguno de los cuales es un enlace simbólico. Lo que es un enlace simbólico es /etc/rc.d/init.d , que enlaza un nivel con /etc/init.d (estoy viendo un Puppy basado en Slackware; también hay sabores basados en Ubuntu y otros .) Hay un archivo README.txt en cada uno, que explica su enfoque.
fuente
Ok, entonces,
/etc/init.d
es un lugar donde puedes implementar rápidamente un script de inicio. El segundo paso para activar este script es ejecutar unchkconfig
comando en él. Digamos que correschkconfig --add <yourscript>
, se crearán enlaces simbólicos entre,/etc/init.d/<yourscript>
y/etc/rc.d/rcX.d/S50<script>
por ejemplo. X en rcX.d representa el número de nivel de ejecución del script y S50 representa el tipo de script (hay dos de estos tipos, S y K, S le dice al sistema que inicie el script cuando se inicia, y K le dice al sistema que salga del script con gracia cuando cierre. El número después de S / K representa el orden en que suceden, en caso de que tenga algunos scripts que dependen de que otros estén activos primero). Por defecto, si no se especifica ningún nivel de ejecución dentro del script o cuando emite el comando runlevel, CentOS6 crea scripts S50 para los niveles de ejecución 2,3,4,5 y K50 para los niveles de ejecución 0,1,6.fuente