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


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

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

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

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


207
2017-10-25 13:46


Источник


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


Ответы:


sudo update-rc.d minidlna defaults

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

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

Сделайте команду

sudo update-rc.d minidlna enable

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


239
2017-10-25 14:09



спасибо, но что, если я получу этот результат при запуске этой команды ?: System start/stop links for /etc/init.d/minidlna already exist. - Ricardo Reyes
Я grep'd для minidlna во всех файлах в / var / log и не смог найти упоминания об услуге при запуске - Ricardo Reyes
если minidlna не записывает ни один файл журнала, вы не найдете его где-нибудь. Это может быть неудачно, потому что нет сетевого подключения при его запуске? Попробуйте просмотреть конфигурацию, если возможно включить отладку и / или выполнить регистрацию, чтобы узнать, что случилось. - LassePoulsen
Использование @RicardoReyes sudo update-rc.d -f minidlna remove для удаления существующих ссылок. - Dogweather
Я получаю ниже error update-rc.d: /etc/init.d/usermanage: файл не существует - Rizwan Patel


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


31
2017-10-25 13:52



Комментарии /etc/init.d/rc.local в Ubuntu 12.04 говорят: «Краткое описание: Запустите /etc/rc.local, если он существует», возможно, добавление скриптов в /etc/rc.local было бы лучше? - Sanghyun Lee
Будет ли этот метод выдавать команду «shutdown» для службы или просто убивать процесс при завершении работы ОС? - Vadim Chekan
Vadim, rc.local запускается только при загрузке, ничего не происходит при выключении. Процесс, скорее всего, будет убит ОС при завершении работы. - Weboide
FYI: разница между rc.local vs добавив его в init, является то, что rc.local выполняется в конце последовательности запуска init, а не как часть его - BobTuckerman


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

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

    update-rc.d -f service_name remove
    

defaults => уровни запуска по умолчанию 2,3,4 и 5

Пример:

update-rc.d tomcat7 defaults

26
2018-01-15 12:20



Когда я делаю эту команду, я получаю «Ссылки на запуск / остановку системы для /etc/init.d/tomcat7 уже существуют». однако, когда я перезагружаюсь, он не запускает tomcat, мне всегда нужно делать «сервис tomcat7 start». - John Little
в моем случае sudo update-rc.d myservice по умолчанию всегда завершается без вывода, и служба не запускается при загрузке или с sudo service myservice start который также завершается бесшумно. sudo /etc/init.d/myservice startоднако работает - axk