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.
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.źródło
.service
pliku, a nie skryptu inicjującego bash.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:źródło
Miałem ten sam błąd i naprawiłem go, wprowadzając domyślne informacje startowe, jak następuje:
Zmień z:
do:
: 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
źródło