systemctl no reconoce mi servicio: Default-Start no contiene niveles de ejecución, abortando

13

Quiero definir un servicio simple para iniciar en el arranque, estar en el servidor Ubuntu 16.10. Entonces he creado un/etc/init.d/mydaemon

De alguna manera me equivoqué entre el sistema de arranque y systemd: al principio pensé que tenía que configurar un servicio de arranque. Entonces, después de convertir mi archivo a una sintaxis inicial, corrí update-rc.d mydaemon defaults.

Descubrí mi error y ejecuté update-rc.d mydaemon remove, convertí a la sintaxis systemd y ejecuté systemctl enable mydaemon, pero obtuve el error:

mydaemon.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mydaemon
update-rc.d: error: mydaemonDefault-Start contains no runlevels, aborting.
CharlesB
fuente

Respuestas:

14

Tuve el mismo error al portar un script sysv desde un cuadro de redhat a ubuntu. Necesitaba agregar algunos encabezados al script

### BEGIN INIT INFO
# Provides:          my-service-name
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: your description here
### END INIT INFO

encontrado en /ubuntu/909523/default-start-contains-no-runlevels-aborting

nick fox
fuente
ver también wiki.debian.org/LSBInitScripts
nick fox
1
Mi script ya tiene este lector, pero aún muestra exactamente el mismo error .. = [
Luciano Andress Martini
me salvó el día :-) Muchas gracias
Aravinthan K
11

El problema era que la ubicación del archivo, en el servidor Ubuntu en el que lo espera /etc/systemd/system, /etc/init.d/es para archivos heredados.

CharlesB
fuente
esta solución solucionó mi servicio
AmirHossein Rezaei
Creo que esta solución no funciona si el script de inicio es un script bash. En lugar de copiar el archivo, los parámetros en los niveles de ejecución deben agregarse como comentarios como Nick Fox publicado en su respuesta.
LaTechneuse
Claro, la pregunta inicial está en un .servicearchivo, no en un script bash init.
CharlesB
7

Solo para agregar a la respuesta de @CharlesB: cuando llegué a este estado pude simplemente mover el archivo desde y volver /etc/init.d/a /etc/systemd/system/ejecutar el comando y funcionó correctamente:

sudo mv /etc/init.d/mydaemon /etc/systemd/system/
sudo systemctl enable mydaemon
Cory
fuente
1
Esto debería ser un comentario.
Gerald Schneider
Creo que es una respuesta más fácil de seguir, así que la hice.
Cory
0

Tuve el mismo error y lo arreglé poniendo la información de inicio predeterminada, de la siguiente manera:

vi /etc/init.d/greenbone-security-assistant

Cambiar de:

# Default-Start:

a:

# Default-Start: 2 3 4 5

: wq

root @ kali: /etc/init.d# systemctl enable greenbone-security-assistant

Estado de sincronización de greenbone-security-assistant.service con el script de servicio SysV con / lib / systemd / systemd-sysv-install.

Ejecución: / lib / systemd / systemd-sysv-install enable greenbone-security-assistant

Fernando Galves
fuente