Estoy configurando la cuota en mi servidor Linode con Ubuntu 16.10, y aparece el siguiente error
No se puede stat () dispositivo montado / dev / root: no existe tal archivo o directorio
Entonces, para solucionar esto, llegué a este hilo para la solución que se realiza agregando
ln -s /dev/xvda /dev/root
/etc/init.d/quota restart
a la /etc/rc.local
. Pero Ubuntu 16.10 ya no usa rc.local
sino que usa systemd . ¿Cuál es la alternativa para rc.local
, cómo puedo ejecutar los comandos anteriores en el inicio?
También habilité el servicio usando systemctl enable rc-local.service
pero no funcionó para mí. Cualquier ventaja sería apreciada.
Respuestas:
Introducción
Creo que no debería crear un nuevo servicio como lo sugiere George en el enlace. El
rc-local.service
ya existe en systemd y el archivo de servicio sugiere querc.local
, si existe y es ejecutable, se extrae automáticamentemulti-user.target
. Por lo tanto, no es necesario recrear o forzar algo que acaba de hacer de otra manerasystemd-rc-local-generator
.Una solución
Una solución rápida (no sé si esa es la forma canónica):
En una terminal hacer:
Después de eso
rc.local
, se llamará al inicio del sistema. Inserta lo que quieras.Antecedentes
Si lo haces en una terminal:
Puede ver que el comentario principal contiene líneas como:
Esto indica que en este sistema, si hay un archivo llamado
/etc/rc.local
que es ejecutable, entonces se extraerá en multiusuario.target automáticamente. Entonces solo crea el archivo correspondiente (sudo touch...
) y lo hace ejecutable (sudo chmod +x ...
).fuente
#!/bin/bash
embargo, no lo use , a#!/bin/sh
menos que realmente necesite bash en su script. Todos los demás scripts del sistema usan guiones, no bash, por razones de rendimiento.rc-local
no permite ordenarlo después de otra unidad, ¿no es así?Vi esta solución sugerida que implica el uso de
systemd
aquí :Crea un servicio:
Agregue su código allí:
Cree y asegúrese de que
/etc/rc.local
sea ejecutable y agregue este código dentro de él:Habilitar el servicio:
Inicie el servicio y verifique el estado:
Si todo va bien, puede agregar su
code
al/etc/rc.local
archivo y luego reiniciarlo.Nota: Probado en Lubuntu 16.10.
Fuente:
https://www.linuxbabe.com/linux-server/how-to-enable-etcrc-local-with-systemd
fuente
touch "hello"
antes delexit 0
. El servicio parece estar activo pero no crea ningún archivo en el directorio / etc / Ejecutando en ubuntu 16.04 Arabian 5.31Para agregar a la respuesta de Jan que, a diferencia del
rc.local
archivo habitual ,rc-local service
se ejecuta no después de que se hayan iniciado todos los servicios, sino después de que la red se conecte.En algunos casos, es posible que desee ejecutar comandos desde
rc.local
más adelante. Por ejemplo, quería que se ejecutara después dellxd
inicio.En este caso, puede editar
rc-local service
las dependencias de inicio creando un archivo conf desplegable:/etc/systemd/system/rc-local.service.d/override.conf
con contenido:Donde puede agregar un nombre de unidad necesario (como agregué
lxd.service
)No te olvides de
systemctl daemon-reload
después de eso.fuente