Solución 1:
Usa systemctl edit smb.service
para actualizar las dependencias.
After=dirsrv.target
- Se asegurará de que smb.service se inicie después de dirsrv.target.
Para mayor solidez (que valdrá la pena si está jugando con estas cosas), también puede incluir algunos de los siguientes:
Requires=dirsrv.target
- Active dirsrv.target cuando smb.service esté activado. Hará que smb.service falle si dirsrv.target falla.
Wants=dirsrv.target
- Active dirsrv.target cuando smb.service esté activado. No hará que smb.service falle si dirsrv.target falla.
BindsTo=dirsrv.target
- Si dirsrv.target está desactivado, desactive smb.service.
Fuente:http://www.freedesktop.org/software/systemd/man/systemd.unit.html
systemd-ui
proporciona una GUI para systemd. Ofrece una buena vista del estado de systemd, pero aún tendrá que usar un editor de texto para modificar los archivos de la unidad.
Solución 2:
Haz dos cosas:
-
Edite el
/lib/systemd/system/smb.service
unit, para especificar la dependencia. El[unit]
la sección contiene unAfter=
línea que especifica qué servicios/objetivos se deben alcanzar antes de este.After=syslog.target network.target nmb.service winbind.service
Cámbialo por:
After=dirsrv.target syslog.target network.target nmb.service winbind.service
-
Informe esta dependencia a Fedora como un error, para que pueda incorporarse en versiones futuras.
Solución 3:
tal vez necesite cambiar o incluir una línea con el Requires
directiva en el [Unit]
sección del /usr/lib/systemd/system/smb.service
archivo.
Requires=dirsrv.target
y
After=dirsrv.target
Solución 4:
Hay dos alternativas para modificar el archivo de servicio en /usr/lib/systemd/system
(consulte el Ejemplo 2. Anulación de la configuración del proveedor):
-
Copie el archivo a
/etc/systemd/system
y realizar las modificaciones en la copia. Este archivo anulará completamente el archivo en/usr/lib
. -
Crea el archivo
/etc/systemd/system/smb.service.d/local.conf
. El contenido del archivo debe ser algo como el ejemplo a continuación. Esto anula selectivamente las opciones "Requiere" y "Después" en el archivo de servicio proporcionado por el proveedor.
Cada uno de estos (incluyendo la modificación del archivo en /usr/lib
) ofrece ventajas y desventajas. La mejor elección puede depender del servicio y la naturaleza de las modificaciones.
Si bien puede funcionar, no es suficiente agregar solo la opción "Después" (ver Opciones de la sección [Unidad]). "Después" controla el orden, pero no las dependencias. Si dirsrv.target
no se inicia de otra forma, no se iniciará especificando una orden. El uso de la opción "Requiere" o "Quiere" forzará dirsrv.target
para ser iniciado.
[Unit]
Requires=dirsrv.target
After=dirsrv.target
NB:no sé si este enfoque estaba disponible cuando se hizo esta pregunta originalmente.