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.