How can I configure a service to run at startup
but it’s not configured to auto start when the PC reboots. How can I configure it to start automatically, even if no one is logged into the PC?
@user154721 What arguments did you give update-rc.d to make autostart work? I’ve tried various options but haven’t had any luck.
Auto-start programs are configured in autostart manifests or in *.service files in several locations, as well as in init.d or crontab . See: unix.stackexchange.com/a/525845/43233
5 Answers 5
sudo update-rc.d minidlna defaults
This should add the service to the automatic startup system. But if you get:
System start/stop links for /etc/init.d/minidlna already exist.
sudo update-rc.d minidlna enable
P.S.: For further detail look at the man page for update-rc.d by typing the command man update-rc.d
thanks, but what if I get this output when running that command?: System start/stop links for /etc/init.d/minidlna already exist.
if minidlna doesnt write to any logfile you won’t find it any where. Does it maybe fail because there is no network connection when it is started? Try to look at the configuration if it is possible turn on debugging and/or logging to find out whats wrong.
I am also, got the same error update-rc.d: /etc/init.d/mongod: file does not exist . Then, sudo systemctl enable mongod.service worked for me.
Since Ubuntu 15.10 and newer (resp. Debian 8 «jessie» and newer), you have to use the following command to configure your service minidlna to run at startup:
sudo systemctl enable minidlna.service
And to disable it again from starting at boot time:
sudo systemctl disable minidlna.service
This works with all service names available on your system. To find out available service names, just list the filenames of the service files:
ls /lib/systemd/system/*.service ls /etc/systemd/system/*.service
As for sudo, I recieve Unknown operation enable. If I discard sudo it will ask me which user I would like to choose. Pick your root user and you will be able to set the desired value.
@tanius I have followe the procedure of adding new services to /etc/systemd/system/*.service. I would like to know why no one suggested creating or editing these files as it seems to provide mode options (Restart, RestartSec, ExecStop, etc. )
@tiagoams Creating a service file was just not the question here, since the OP states that a service minidlna already exists but does not autostart. But thanks for the pointer to service files under /etc , I added that to the answer now.
update-rc.d service_name defaults
update-rc.d -f service_name remove
defaults => default run levels 2,3,4 and 5
update-rc.d tomcat7 defaults
When I do this command, I get «System start/stop links for /etc/init.d/tomcat7 already exist». however, when I reboot, it does not start tomcat, I always have to do «service tomcat7 start».
in my case sudo update-rc.d myservice default always completes with no output and the service won’t start on boot-up or with sudo service myservice start which also completes silently. sudo /etc/init.d/myservice start works however
Sometimes you need to run a script on boot process, for example run an iptables config at boot process. So you don’t have to run the script manually every rebooting.
You can run your script on boot process in Ubuntu by adding it to /etc/init.d/rc.local file. Look the steps below.
- Open /etc/rc.local file with this command:
sh /home/ivan/iptables.sh echo 'Iptable Configured!'
Comments of /etc/init.d/rc.local in Ubuntu 12.04 says «Short-Description: Run /etc/rc.local if it exist», so maybe adding the scripts to /etc/rc.local would be better idea?
Vadim, rc.local is just run at boot, nothing is achieved on shutdown. The process would most likely be killed by the OS on shutdown.
FYI: The difference between rc.local vs adding it to init, is that rc.local is executed at the end of the init startup sequence, rather than as part of it
In ubuntu version 18.04 TLS, I found that update-rc.d does not work fine if there is no specific comment block in the start script that looks like this:
### 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
Автозагрузка Linux
При запуске ПК на базе Linux приходится многие программы включить вручную. Пользователи с ними работают каждый день и глупо тратить время на подобные операции. К счастью, существует опция автозагрузки, которая хорошая работает в Linux.
Принцип работы
Как понятно из вышеупомянутого списка, один протокол запускает скрипт. Сервер выступает хранилищем для сохранности всех выбранных программ. К примеру, это может быть текстовый редактор либо Скайп. Главное — задать путь.
Следующим способом обозначена команда local. Метод считается устаревшим, однако его также стоит рассмотреть. Скрипты в local затрагивает графическое окружение. Ранее оценивалась активность процессора, а именно его ядра. В данном случае на первом месте стоит графический модуль.
Менеджер входа остается одним из основных способов использования автозагрузки. Он отличается простой и набором понятных команд, которые не конфликт между собой. При запуске окружения происходит перелинковка. Система инициализации проверяет допуски всех программ и оставляет только те, которые нужны на данный момент.
Прочие методы для автоматической активации приложений
На ПК с операционной Linux замечательно работают сервера. Речь идет о комплексе программ, которые определяют базовые скрипты. Через отдельные сервера происходит старт приложений. Это могут быть системный либо частный софт.
На втором месте стоит окружение с поддержкой. Через настройки отложенного запуска также получается управлять программами на ПК. Главное — выбрать параметры доступа, чтобы программы не конфликтовали между собой.
Последний по списку значится метод bash. Принцип работы основан на создании отдельной папки, которая отслеживает активность приложений. Команды на них поступают автоматически, важно просто дождаться открытия. Отдельно упоминается терминал базы данных.
Важно! Через терминал базы данных удается добавлять новые программы для автозагрузки и удалять нежелательный софт из списка.
Про автозагрузку ядра
На уровне ядра есть возможностью выставлять программы для автозагрузки. Речь идет только на системе Линукс. Для этого предусмотрена команда Init, которая доступна через настройки. Программа запускается через вкладку инициализации.
При переходе в настройке проверяется поле оболочки. Возможны варианты с Bash, System. В любом случае действуют стандартные конфигурации, которые видят все программы без разбору. При переходе в строку команды набирается bcfg, что свидетельствует о старте автозагрузки.
Далее прописывается основной код с указанием всех программ для автозапуска. Это могут быть чаты или Телеграмм. Некоторых заинтересует ВК либо ФБ. Для работы понадобится текстовый редактор и таблицы. Это могут быть презентации и прочее.
В первом случае ПК просто перезагружается. Проблема с оболочкой требуется переустановки Линакс. Как правило, используется последнее обновлении и можно забыть о недостающих настройках.
Система инициализации – особенности работы
Система инициализации в Линуксе устроена довольно просто. При переходе в сервис первым делом отображаются текущие службы. Это могут быть графические программы или последние обновления. Пользователи смотрят на доступные операции и по умолчанию доступно отсрочка, немедленный запуск.
Также легко перейти на параллельное подключение и зависимость. При переходе в настройки открываются доступные команды. Некоторые из них позволяют регулировать системные службы. Это требуется, когда важно заменить установленный софт. Что касается автозагрузки, применяются строки Apache.
Пользователи выбирают программы, которые в данный момент установлены на ПК.
Далее проставляются галочки для использования их по умолчанию.
Первый вариант может встречаться из-за ограниченности версии. Система Linux устроена таким образом, что многие функции скрывает по умолчанию. Разблокировка происходит при инициализации Sys. Есть возможность просматривать программы вручную.
Чтобы добавить службу в автозагрузку, необходимо ввести команду enable.
systemctl enable название службы
systemctl disable название службы
Скрипты в Линукс
Как только пользователь разберется в скриптах, ему сразу станет ясно, как эффективно и быстро выставлять программы для автозагрузки. Все это потребуется для работы, это файл LOCAL. Раньше в rc.local добавляли команды bash, которые должны были запуститься при старте операционной системы, однако в новых версиях Linux его упразднили.
С помощью systemd, создадим файл и добавим его в автозапуск, как любую службу.
Разрешаем выполнять скрипт.
Включаем файл local в автозапуск.
Скрипт может не срабатывать по причине неверного кода. Если имя файла является корректным, система выдает внятные ошибки к скрипту. К примеру, может встретиться несовместимость или большое количество программ. В настройках могут быть ограничения по правам пользователя.
Также отдельно оценивается функция автозагрузка в зависимости от версии Линукс. Второй проблемой значится ошибка, и тут высматривается его код. Все ошибки, которые начинаются на 02, свидетельствуют о грамматической подмене.
При пересмотре приложений становится ясно, что некоторые названия были записаны не полностью. Отдельно проверяется путь, так как система должна распознавать софт, а не его дубликаты.
Работа с серверами
Сервера в Linux требуются для того, чтобы сохранять все скрипты на своем месте. Синтаксис команд является не сложным, поэтому рассматриваются строки HR, ET, которые дают общее представление о работе с программой.
Первым делом вводится пункт HR и далее открываются скобки. Важно обратиться к настройке приложения и для этого указывается полный пункт. Короткое обозначение функции – РР. Система Linux при этом должна понимать, с какой программой точно требуется проводить манипуляции.
Ее название стоит отделять скобками или переносить текст на другую строку. Многие стараются использовать сокращенные названия. Чтобы его узнать, важно отметить пункт программы и посмотреть активную строку.
Вывод
Выше описано, как использовать автозагрузку Линакс. Пользователи применяют скрипты, сторонние приложения. Отлично работают сервера, настройки самой системы, поэтому проблемы возникают крайне редко.