systemctl erkennt meinen Dienst nicht: Default-Start enthält keine Runlevel und bricht ab


13

Ich möchte einen einfachen Dienst definieren, der beim Booten auf Ubuntu Server 16.10 gestartet werden soll. Also habe ich eine erstellt/etc/init.d/mydaemon

Ich habe irgendwie zwischen Upstart und Systemd durcheinander gebracht: Zuerst dachte ich, ich müsste einen Upstart-Service einrichten. Nachdem ich meine Datei in eine Upstart-Syntax konvertiert hatte, lief ich update-rc.d mydaemon defaults.

Ich habe meinen Fehler herausgefunden und ausgeführt update-rc.d mydaemon remove, in die Systemd-Syntax konvertiert und ausgeführt systemctl enable mydaemon, aber den Fehler erhalten:

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.

Antworten:


14

Ich hatte den gleichen Fehler beim Portieren eines Sysv-Skripts von einer Redhat-Box nach Ubuntu. Ich musste dem Skript einige Header hinzufügen

### 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

gefunden in /ubuntu/909523/default-start-contains-no-runlevels-aborting



1
Mein Skript hat bereits diesen Reader, zeigt aber immer noch genau den gleichen Fehler. = [
— Luciano Andress Martini

hat meinen Tag gerettet :-) Vielen Dank
— Aravinthan K

11

Das Problem war, dass der Speicherort der Datei auf dem Ubuntu-Server, auf dem sie erwartet wird /etc/systemd/system, /etc/init.d/für ältere Dateien bestimmt ist.


Diese Lösung hat meinen Service
— behoben

Ich denke, diese Lösung funktioniert nicht, wenn das Init-Skript ein Bash-Skript ist. Anstatt die Datei zu kopieren, müssen Parameter auf den Laufebenen als Kommentare hinzugefügt werden, wie Nick Fox in ihrer Antwort angegeben hat.
— LaTechneuse

Sicher, die erste Frage bezieht sich auf eine .serviceDatei, nicht auf ein Bash-Init-Skript.
— CharlesB

7

Nur um die Antwort von @CharlesB zu ergänzen - als ich in diesen Zustand kam, konnte ich die Datei einfach von /etc/init.d/nach verschieben /etc/systemd/system/und den Befehl erneut ausführen, und es funktionierte ordnungsgemäß:

sudo mv /etc/init.d/mydaemon /etc/systemd/system/
sudo systemctl enable mydaemon

1
Dies sollte ein Kommentar sein.
— Gerald Schneider

Ich denke, es ist einfacher, der Antwort zu folgen, also habe ich sie zu einer gemacht.
— Cory

0

Ich hatte den gleichen Fehler und habe ihn behoben, indem ich die Standardstartinformationen wie folgt eingegeben habe:

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

Wechsel von:

# Default-Start:

zu:

# Default-Start: 2 3 4 5

: wq

root @ kali: /etc/init.d# systemctl aktiviert den Greenbone-Sicherheitsassistenten

Synchronisieren des Status von greenbone-security-Assistant.service mit dem SysV-Dienstskript mit / lib / systemd / systemd-sysv-install.

Ausführen: / lib / systemd / systemd-sysv-install aktiviert den Greenbone-Sicherheitsassistenten

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.