Я хочу определить простой сервис, который будет запускаться при загрузке, находясь на сервере Ubuntu 16.10. Итак, я создал/etc/init.d/mydaemon
Я как-то напутал между upstart и systemd: сначала я подумал, что должен настроить службу upstart. Так что после преобразования моего файла в синтаксис 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.
Проблема заключалась в том, что местоположение файла на сервере Ubuntu, в котором он его ожидает
/etc/systemd/system
,/etc/init.d/
относится к устаревшим файлам.источник
.service
файла, а не сценария инициализации bash.Просто добавлю к ответу @CharlesB - когда я попал в это состояние, я смог просто переместить файл из и
/etc/init.d/
снова/etc/systemd/system/
запустить команду, и она работала правильно:источник
У меня была та же ошибка, и я исправил ее, добавив начальную информацию по умолчанию, как показано ниже:
Меняться от:
чтобы:
: WQ
root @ kali: /etc/init.d# systemctl включить greenbone-security-assistant
Синхронизация состояния greenbone-security-assistant.service с помощью служебного сценария SysV с помощью / lib / systemd / systemd-sysv-install.
Выполнение: / lib / systemd / systemd-sysv-install включить greenbone-security-assistant
источник