Quiero agregar una iptables
regla 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.local
y /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.local
un tiempo.Respuestas:
/etc/init.d
se 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.local
es: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
echo
línea a/etc/rc.local
y:Sin embargo, no creo que se haga referencia a nada en el
/etc/init
directorio 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.local
el stop deja de funcionar/etc/rc.local
(consulte mi respuesta para obtener más detalles)./etc/rc.local
script es el proceso ejecutable gobernado por el/etc/initd/rc.local
script, al igual que (por ejemplo)/bin/syslog
sería el proceso ejecutable gobernado por/etc/initd/syslog
. Dices explícitamente que/etc/rc.local
es solo un script de arranque, en lugar de/etc/initd/rc.local
ser un servicio de nivel de ejecución completamente separado.