Quiero agregar una iptablesregla permanente a mi nuevo VPS, y después de una breve búsqueda en Google, me sorprendió que haya dos lugares donde se puede agregar esta regla, que parece idéntica: /etc/rc.localy /etc/init.d/rc.local. Tal vez alguien sabe por qué hay dos lugares para colocar el código de inicio simple. ¿Es específico para Linux (pero ubuntu tiene ambas)? O uno de ellos está en desuso?
configuration
startup
grigoryvp
fuente
fuente

/etc/rc.localun tiempo.Respuestas:
/etc/init.dse mantiene en ubuntu para compatibilidad con versiones anteriores de sysvinit. Si realmente mira/etc/init.d/rc.local, verá (también desde un servidor LTS 12.04):Y "Ejecutar /etc/rc.local" es exactamente lo que hace. La totalidad de
/etc/rc.locales:Supongo que el propósito de hacer esto es proporcionar un lugar simple y simple para colocar los comandos de shell que desea ejecutar en el arranque, sin tener que lidiar con las cosas del servicio stop | start, que está en
/etc/init.d/rc.local.De hecho, es un servicio y puede ejecutarse como tal. Agregué una
echolínea a/etc/rc.localy:Sin embargo, no creo que se haga referencia a nada en el
/etc/initdirectorio de upstart (no init.d!):Hay algunos servicios "rc" en la fase inicial:
Pero ninguno de ellos parece tener nada que ver con rc.local.
fuente
Esto es más una cosa específica de distribución. (como, no encontrará diferentes rc.local en CentOS).
Ahora, volviendo a su pregunta real, creo que agregar cualquier cosa dentro de /etc/init.d/rc.local hace que comience como un "servicio", mientras que cualquier cosa dentro de /etc/rc.local simplemente lanzaría ese script en el momento del arranque.
No estoy realmente seguro de por qué Ubuntu todavía los mantiene a ambos. (¡Quizás alguien más pueda arrojar algo de luz sobre esta parte!)
fuente
/etc/init.d/rc.localel stop deja de funcionar/etc/rc.local(consulte mi respuesta para obtener más detalles)./etc/rc.localscript es el proceso ejecutable gobernado por el/etc/initd/rc.localscript, al igual que (por ejemplo)/bin/syslogsería el proceso ejecutable gobernado por/etc/initd/syslog. Dices explícitamente que/etc/rc.locales solo un script de arranque, en lugar de/etc/initd/rc.localser un servicio de nivel de ejecución completamente separado.