systemctl nie rozpoznaje mojej usługi: Default-Start nie zawiera poziomów pracy, przerywanie


15

Chcę zdefiniować prostą usługę, która będzie uruchamiana podczas rozruchu, będąc na serwerze Ubuntu 16.10. Więc stworzyłem/etc/init.d/mydaemon

Jakoś pomieszałem między upstart i systemd: na początku myślałem, że muszę skonfigurować usługę upstart. Więc po przekonwertowaniu mojego pliku na składnię wstępną uruchomiłem update-rc.d mydaemon defaults.

Zrozumiałem swój błąd i uruchomiłem update-rc.d mydaemon remove, przekonwertowałem na składnię systemową i uruchomiłem systemctl enable mydaemon, ale dostaję błąd:

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.

Odpowiedzi:


16

Miałem ten sam błąd podczas przenoszenia skryptu sysv z redhat box na Ubuntu. Musiałem dodać kilka nagłówków do skryptu

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

znalezione w /ubuntu/909523/default-start-contains-no-runlevels-aborting



1
Mój skrypt ma już tego czytnika, ale wciąż pokazuje dokładnie ten sam błąd .. = [
Luciano Andress Martini

uratował mi dzień :-) Wielkie dzięki
Aravinthan K

11

Problem polegał na tym, że lokalizacja pliku, na serwerze Ubuntu, w którym się go spodziewa /etc/systemd/system, /etc/init.d/dotyczy starszych plików.


to rozwiązanie naprawiło moją usługę
AmirHossein Rezaei

Myślę, że to rozwiązanie nie działa, jeśli skrypt init jest skryptem bash. Zamiast kopiować plik, parametry na poziomach uruchamiania muszą zostać dodane jako komentarze, jak podał Nick Fox w swojej odpowiedzi.
LaTechneuse,

Jasne, początkowe pytanie dotyczy .servicepliku, a nie skryptu inicjującego bash.
CharlesB

7

Wystarczy dodać do odpowiedzi z @CharlesB - kiedy mam do tego stanu udało mi się po prostu przenieść plik od /etc/init.d/celu /etc/systemd/system/i uruchom polecenie i to działało poprawnie:

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

1
To powinien być komentarz.
Gerald Schneider,

Myślę, że łatwiej jest podążać za odpowiedzią, więc uczyniłem to jednym.
Cory,

0

Miałem ten sam błąd i naprawiłem go, wprowadzając domyślne informacje startowe, jak następuje:

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

Zmień z:

# Default-Start:

do:

# Default-Start: 2 3 4 5

: wq

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

Synchronizacja stanu usługi greenbone-security-assistant.service ze skryptem usługi SysV z / lib / systemd / systemd-sysv-install.

Wykonywanie: / lib / systemd / systemd-sysv-install enable greenbone-security-assistant

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.