У меня есть демон, который работает нормально, если я запускаю его вручную командой 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.
Do the command
sudo update-rc.d minidlna enable
P.S.: Для более детального изучения страницы man update-rc.d, введите команду man update-rc.d
Для запуска демона при запуске:
update-rc.d service_name по умолчанию
Чтобы удалить:
update-rc.d -f service_name remove
defaults => уровни выполнения по умолчанию 2,3,4 и 5
Пример:
update-rc.d tomcat7 defaults
Иногда Вам нужно запустить скрипт в процессе загрузки, например, запустить iptables config в процессе загрузки. Поэтому Вам не нужно запускать скрипт вручную при каждой перезагрузке.
Вы можете запустить скрипт в процессе загрузки в Ubuntu, добавив его в файл /etc/init.d/rc.local
. Посмотрите на шаги ниже.
Откройте файл /etc/rc.local
этой командой:
vim /etc/rc.local
Добавьте туда свой скрипт, который вы хотите запустить в процессе загрузки, например:
sh /home/ivan/iptables.sh
echo 'Iptable Configured!'
Просмотрите комментарии, включенные в этот файл и убедитесь, что в конце есть выход 0.
Сохраните файлы. И ваш скрипт запустится в процессе загрузки.
В 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
Начиная с Ubuntu 15.10 (соотв. Debian 8 «jessie»), вы должны использовать следующую команду для настройки вашей службы minidlna
для запуска при запуске:
sudo systemctl enable minidlna.service
И снова отключить ее при запуске с время загрузки:
sudo systemctl disable minidlna.service
Это работает со всеми ссылками на имена служб, которые вы можете найти с помощью ls /lib/systemd/system/*.service[1183751 sizes.