systemctl не розпізнає мою послугу: за замовчуванням Start не містить рівнів запуску, перериває


15

Я хочу визначити просту послугу, яку потрібно запустити під час завантаження, перебуваючи на сервері Ubuntu 16.10. Так я створив/etc/init.d/mydaemon

Я якось заплутався між upstart і systemd: спочатку я подумав, що мені потрібно налаштувати послугу upstart. Тож після перетворення мого файлу в синтаксис на вищому рівні я побіг update-rc.d mydaemon defaults.

Я з'ясував свою помилку і побіг update-rc.d mydaemon remove, перетворився на системний синтаксис і побіг systemctl enable mydaemon, але отримав помилку:

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.

Відповіді:


16

У мене була така ж помилка при перенесенні скрипта sysv з поля redhat на ubuntu. Мені потрібно було додати кілька заголовків до сценарію

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

знайдено в /ubuntu/909523/default-start-contains-no-runlevels-aborting



1
У мого сценарію цей читач уже є, але все одно показує абсолютно таку ж помилку .. = [
Лучано Андресс Мартіні

врятував мій день :-) Багато подяк
Аравінтан К

11

Проблема полягала у розташуванні файлу, на сервері Ubuntu він очікував /etc/systemd/system, що /etc/init.d/це для застарілих файлів.


це рішення виправило мою службу
AmirHossein Rezaei

Я думаю, що це рішення не працює, якщо сценарій init - це bash-скрипт. Замість того, щоб копіювати файл, параметри рівня запуску повинні бути додані як коментарі, як нік фокс, розміщений у своїй відповіді.
LaTechneuse

Звичайно, початкове питання стосується .serviceфайлу, а не bash init script.
CharlesB

7

Просто , щоб додати до відповіді від @CharlesB - коли я потрапив в цей стан , я був в стані просто перемістити файл з /etc/init.d/до /etc/systemd/system/і повторіть команду і вона працювала належним чином:

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

1
Це має бути коментар.
Джеральд Шнайдер

Я думаю, що відповісти простіше, тому я зробив її одною.
Кори

0

У мене була така ж помилка, і я виправив її, поставивши інформацію про початок за замовчуванням, як це:

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

Змінити з:

# Default-Start:

до:

# Default-Start: 2 3 4 5

: wq

root @ kali: /etc/init.d# systemctl включити greenbone-security-Assistant

Синхронізація стану greenbone-security-assist.service з сценарієм служби SysV з / lib / systemd / systemd-sysv-install.

Виконання: / lib / systemd / systemd-sysv-install включити greenbone-security-Assistant

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.