Как я могу настроить службу для запуска при запуске

У меня есть демон, который работает нормально, если я запускаю его вручную с помощью service команда:

ricardo@ricardo-laptop:~$ sudo service minidlna start                    * Starting minidlna minidlna                                                              [ OK ] 

но он не настроен на автоматический запуск при перезагрузке ПК.

Как я могу настроить его на автоматический запуск, даже если никто не вошел в систему на компьютере?

sudo update-rc.d minidlna defaults

Это должно добавить службу в систему автоматического запуска. Но если вы получите:

System start/stop links for /etc/init.d/minidlna already exist.

Выполните команду

sudo update-rc.d minidlna enable

P.S.: Для получения более подробной информации посмотрите справочную страницу для update-rc.d, введя команду man update-rc.d

  • Чтобы запустить демон при запуске:

    update-rc.d service_name defaults
  • Удалять:

    update-rc.d -f service_name remove

>значения по умолчанию = уровни выполнения по умолчанию 2,3,4 и 5

Пример:

update-rc.d tomcat7 defaults

Иногда вам нужно запустить скрипт в процессе загрузки, например, запустить конфигурацию iptables в процессе загрузки. Таким образом, вам не нужно запускать скрипт вручную при каждой перезагрузке.

Вы можете запустить свой скрипт в процессе загрузки в Ubuntu, добавив его в /etc/init.d/rc.local файл. Посмотрите на шаги ниже.

  1. Открыть /etc/rc.local файл с помощью этой команды:

    vim /etc/rc.local
  2. Добавьте туда свой скрипт, который вы хотите запустить в процессе загрузки, например:

    sh /home/ivan/iptables.sh echo 'Iptable Configured!'
  3. Просмотрите комментарии, включенные в этот файл, и убедитесь, что в конце указан выход 0.

  4. Сохраните файлы. И ваш скрипт будет запущен в процессе загрузки.

Начиная с Ubuntu 15.10 (соответственно. Debian 8 "jessie"), вы должны использовать следующую команду для настройки вашей службы minidlna для запуска при запуске:

sudo systemctl enable minidlna.service

И снова отключить его от запуска во время загрузки:

sudo systemctl disable minidlna.service

Это работает со всеми ссылками на имена служб, которые вы можете найти с помощью ls /lib/systemd/system/*.service.

В ubuntu версии 18.04 TLS я обнаружил, что update-rc.d работает неправильно, если в стартовом скрипте нет определенного блока комментариев, который выглядит следующим образом:

### BEGIN INIT INFO# Provides: myprogram# Required-Start: $ local_fs $ remote_fs $ syslog $ network $ time# Required-Stop: $ local_fs $ remote_fs $ syslog $ network# Default-start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: myprogram some description### END INIT INFO

@user154721 Какие аргументы вы привели update-rc.d, чтобы заставить автозапуск работать?
Я пробовал разные варианты, но безуспешно.

Программы автозапуска настраиваются в манифестах “автозапуск” или в файлах “*.service” в нескольких местах, а также в “init.d” или “crontab”. Смотрите: upstart - How to start application after login on CentOS? - Unix & Linux Stack Exchange