Estoy usando Archlinux y comencé a probar systemd en estos días.
Sin embargo, descubrí que systemd no carga mi script /etc/rc.local.
Como se mencionó en la página Wiki, corrí systemctl enable rc-local.service
, pero esto no ayudó.
El contenido de mi archivo /etc/rc.local es:
echo -n 120 > /sys/devices/platform/i8042/serio1/speed
echo -n 250 > /sys/devices/platform/i8042/serio1/sensitivity
iptables --table nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
¿Alguna sugerencia?
arch-linux
Felix Yan
fuente
fuente
/etc/systemd/system/multi-user.target.wants/rc-local.service
y/lib/systemd/system/rc-local.service
systemctl enable rc-local.service
. Si continúa teniendo problemas, publique el resultado desystemctl status rc-local.service
.multi-user.target.wants
es exactamente lo que lo habilita .Con systemd 188-2, systemd se queja de no tener una
[Install]
sección y, como tal, no puede habilitar el servicio rc.local. Podría haber sido el caso con versiones anteriores, pero desde que los desarrolladores de Arch anunciaron recientemente que systemd se convertirá en el predeterminado, estoy arreglando mi sistema.Para solucionarlo, solo agregue una sección para el objetivo multiusuario en
/etc/systemd/system/rc-local.service
:Crea el
/etc/rc.local
script y hazlo ejecutable conchmod +x /etc/rc.local
fuente
rc-local.service
nunca fue un servicio habilitado a través de,systemctl enable
pero desde 2011 ha sido un servicio habilitado automáticamente por un generador . Sin embargo, Arch Linux, como se explica en unix.stackexchange.com/a/471871/5132 , no activa las opciones de compatibilidad con versiones anteriores en systemd que proporcionan el generador en primer lugar.Pkgfile (en mi sistema) dice:
Ese paquete instala otras cosas que quizás no desee, pero puede deshabilitarlo. Ver también: https://wiki.archlinux.org/index.php/Systemd#The_initscripts-systemd_package
fuente
No olvide hacer que rc.local sea ejecutable, ¡o la capa de compatibilidad no lo ejecutará! En los ejemplos anteriores que se enumeran, ejecutaría chmod a + x para hacer que el archivo rc.local sea ejecutable. Como sigue:
¡Creo que otro posible problema es la ubicación de su script rc.local! Si aún no ha agregado la compatibilidad a systemd (que debería estar integrada, y parece ser por una mención anterior de que ya existe), es posible que deba verificar la ubicación de sus archivos ... En mi sistema operativo tengo rc-local en /etc/rc.d/rc.local, así que ejecuté lo siguiente:
fuente
systemd
archivo de servicio sea ejecutable, como se muestra en su primer fragmento de código. Además, en Arch Linux, la ruta del archivo es/etc/rc.local
, quizás el contenido delsystemd
archivo de servicio es incorrecto.Dos trampas comunes:
No te olvides de hacer
/etc/rc.d/rc.local
ejecutable. Puedes usarpara hacerlo ejecutable.
No olvides poner una
#!/bin/sh
línea en la primera línea de/etc/rc.d/rc.local
. Así es como deberían verse las cosas:Si no obtiene un resultado similar, edite
/etc/rc.d/rc.local
para agregar una línea en la parte superior que contenga solo#!/bin/sh
.fuente
Si tiene
/etc/rc.local
un archivo ejecutable, será arrastrado al proceso de arranque porsystemd-rc-local-generator
/rc-local.service
.Al menos
/etc/rc.local
es la ruta predeterminada que utiliza, pero la distribución la establece. Porque es principalmente para la compatibilidad con versiones anteriores, y diferentes distribuciones usaban diferentes rutas. Por ejemplo, en Fedora, el camino es/etc/rc.d/rc.local
. Puede verificar la ruta de la siguiente manera:Parece que esto no es muy conocido. Hay varias publicaciones que muestran una versión anterior del archivo, que no tiene ese comentario.
fuente