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.