Olvidarse de rc.local.
Como dije sobre CentOS 7 y sobre Debian 8 y sobre Ubuntu 15 :
Estás utilizando un sistema operativo systemd + Linux. /etc/rc.locales un doble mecanismo de compatibilidad con versiones anteriores en systemd, porque es un mecanismo de compatibilidad con versiones anteriores para un mecanismo que era en sí mismo un mecanismo de compatibilidad en el clon del Sistema 5 de Van Smoorenburg rc.
Usar /etc/rc.localpuede salir terriblemente mal. La gente se ha sorprendido por el hecho de que systemd no se ejecuta rc.localde la misma manera, en el mismo lugar en el arranque, como solía hacerlo. (O erróneamente espere: de hecho, no se ejecutó por última vez en el sistema anterior, como todavía señala el manual de OpenBSD). Otros se han sorprendido por el hecho de que lo que establecieron al rc.localesperar las viejas formas de hacer las cosas, es entonces completamente deshecho por los gustos de las nuevas udevnormas, NetworkManager, systemd-logind, systemd-resolved, o varios "kit" s.
Como se ejemplifica en " ¿Por qué` init 0` resulta en "Argumentos excesivos" en la instalación de Arch? ", Algunos sistemas operativos ya proporcionan systemd sin las características de compatibilidad con versiones anteriores , como el systemd-rc-local-generatorgenerador . Mientras Debian aún conserva las características de compatibilidad con versiones anteriores , Arch Linux construye systemd con ellas desactivadas . Entonces, en Arch y sistemas operativos como este, se espera /etc/rc.local que se ignore por completo .
Olvidarse de rc.local. No es el camino a seguir. Tiene un sistema operativo systemd + Linux. Por lo tanto, cree una unidad de servicio systemd adecuada y no comience desde un punto que esté a dos niveles de compatibilidad con versiones anteriores. (En Ubuntu y Fedora, se eliminó tres veces, el clon de Van Smoorenburg System 5 rcque siguió rc.localluego fue reemplazado dos veces , hace más de una década, primero por advenedizo y luego por systemd).
Recuerde también la primera regla para migrar a systemd .
Esto ni siquiera es una idea nueva que sea específica de systemd. En los sistemas van Smoorenburg rcy Upstart, lo que había que hacer era crear un rcscript de van Smoorenburg o un archivo de trabajo Upstart adecuado en lugar de usarlos rc.local. Incluso el manual de FreeBSD señala que hoy en día uno crea un rcscript Mewburn adecuado en lugar de usarlo /etc/rc.local. Mewburn rcfue presentado por NetBSD 1.5 en 2000.
/etc/rc.localdata de la época de la Séptima Edición Unix y anteriores. Fue reemplazado /etc/inittaby basado rcen un nivel de ejecución en AT&T Unix System 3 (con un poco diferente /etc/inittaben AT&T Unix System 5) en 1983 . Incluso eso es ahora historia.
Cree definiciones de servicio nativas adecuadas para su sistema de gestión de servicios, ya sea un paquete de servicios para el conjunto de herramientas nosh service-managery system-control, un /etc/rc.d/script para Mewburn rc, un archivo de unidad de servicio para systemd, un archivo de trabajo para Upstart, un directorio de servicio para runit / s6 / daemontools -encore, o incluso un /etc/init.d/guión para van Smoorenburg rc.
En systemd, estos archivos de unidad de servicio agregados por el administrador entran /etc/systemd/system/generalmente (o /usr/local/lib/systemd/system/raramente). Con el administrador de servicios nosh, /var/local/sv/es un lugar convencional para paquetes de servicios locales. Mewburn rcen los usos de FreeBSD /usr/local/etc/rc.d/. Sin embargo, los archivos de la unidad de servicio empaquetada y los paquetes de servicio, si los está haciendo, van a diferentes lugares.
Otras lecturas