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

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

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

, но он не настроен на автоматический запуск при перезагрузке компьютера.

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

292
задан 13 June 2018 в 10:21

5 ответов

sudo update-rc.d minidlna defaults

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

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

Do the command

sudo update-rc.d minidlna enable

P.S.: Для более детального изучения страницы man update-rc.d, введите команду man update-rc.d

303
ответ дан 13 June 2018 в 10:21
  • Для запуска демона при запуске:

     update-rc.d service_name по умолчанию
     
  • Чтобы удалить:

     update-rc.d -f service_name remove
     

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

Пример:

update-rc.d tomcat7 defaults
44
ответ дан 13 June 2018 в 10:21

Иногда Вам нужно запустить скрипт в процессе загрузки, например, запустить iptables config в процессе загрузки. Поэтому Вам не нужно запускать скрипт вручную при каждой перезагрузке.

Вы можете запустить скрипт в процессе загрузки в 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. Сохраните файлы. И ваш скрипт запустится в процессе загрузки.

38
ответ дан 13 June 2018 в 10:21

В 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
1
ответ дан 22 November 2019 в 22:41

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

sudo systemctl enable minidlna.service

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

sudo systemctl disable minidlna.service

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

22
ответ дан 22 November 2019 в 22:41