- Автозагрузка Linux
- Принцип работы
- Прочие методы для автоматической активации приложений
- Про автозагрузку ядра
- Система инициализации – особенности работы
- Скрипты в Линукс
- Работа с серверами
- Вывод
- Автозагрузка сервисов в Ubuntu
- Управление автозагрузкой сервисов в Linux
- 1. Список сервисов добавленных автозагрузку
- 2. Проверка состояния
- 3. Добавление в автозагрузку
- 4. Удаление из автозагрузки
- Автозагрузка сервисов пользователя Linux
- Выводы
Автозагрузка 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 при этом должна понимать, с какой программой точно требуется проводить манипуляции.
Ее название стоит отделять скобками или переносить текст на другую строку. Многие стараются использовать сокращенные названия. Чтобы его узнать, важно отметить пункт программы и посмотреть активную строку.
Вывод
Выше описано, как использовать автозагрузку Линакс. Пользователи применяют скрипты, сторонние приложения. Отлично работают сервера, настройки самой системы, поэтому проблемы возникают крайне редко.
Автозагрузка сервисов в Ubuntu
Сервис в операционных системах семейства Unix — это программа, что выполняется в фоновом режиме и не имеет окон или других способов связи с пользователем. В операционной системе, работают в фоновом режиме огромное количество сервисов. И запускаются они при старте системы.
Всем этим управляет система инициализации Systemd. С помощью неё можно смотреть какие сервисы сейчас запущены, смотреть их логи, настраивать автозагрузку сервисов и многое другое. В этой статье мы рассмотрим как добавлять сервисы в автозагрузку в Linux на примере Ubuntu.
Управление автозагрузкой сервисов в Linux
Как было сказано ранее, сервисы, это обычные программы, которые выполняются в фоне и не связанны со стандартными потоками ввода и вывода. В Systemd настройки каждого сервиса находятся в отдельном файле, который хранится в файловой системе. Более подробно обо всём этом можно прочитать в статье Управление службами в Linux, а в этой статье сосредоточимся только на автозагрузке.
В Linux ещё со времен SysVInit существует понятие уровней загрузки (runlevel). Уровень загрузки определяет набор сервисов, которые должны быть запущены. В Systemd эти уровни загрузки тоже были реализованы в виде юнитов целей (target). Вот список уровней загрузки и соответствующие им цели:
- Run level 0 (poweroff.target, runlevel0.target) — выключение компьютера.
- Run level 1 (rescue.target, runlevel1.target) — режим восстановления.
- Run level 3 (multi-user.target, runlevel3.target) — текстовый режим.
- Run level 5 (graphical.target) — загрузка графического окружения.
- Run level 6 (reboot.target, runlevel6.target) — перезагрузка системы.
При добавлении сервиса в автозагрузку Systemd просто создает символическую ссылку на файл юнита в папке соответствующего уровня загрузки. А при каком уровне загрузки должен запускаться юнит указано в его конфигурации.
При старте системы, если это рабочая станция с графическим окружением Systemd запускает все сервисы для multi-user.target и затем graphical.target. Для серверов без графического окружения запускается только multi-user.target, а теперь давайте более подробно рассмотрим всё на практике.
1. Список сервисов добавленных автозагрузку
Если вам нужно знать какие сервисы на данный момент добавлены в автозагрузку используйте команду list-unit-files с фильтром по состоянию:
systemctl list-unit-files —type=service —state=enabled
2. Проверка состояния
Для того чтобы проверить находится ли сервис уже в автозагрузке используйте команду is-enabled. Например:
sudo systemctl is-enabled nginx
С помощью команды status вы можете посмотреть находится ли сервис в автоазагрузке, а также проверить запущен ли он в данный момент и посмотреть последние логи:
sudo systemctl status nginx
В строчке Loaded после пути к файлу юнита указано состояние автозагрузки disabled, enabled или static. Сервисы отмеченные как static запускаются автоматически и их автозагрузка не может быть отключена.
3. Добавление в автозагрузку
Добавить сервис в автозагрузку можно с помощью команды enable:
sudo systemctl enable имя_сервиса
Например, для того чтобы добавить в автозагрзку веб-сервер Nginx используйте такую команду:
sudo systemctl enable nginx
Если сервис ещё не запущен, то вы можете комбинировать команду enable с опцией —now для того чтобы запустить его прямо сейчас:
sudo systemctl enable —now nginx
Большинство системных сервисов, в том числе Nginx загружаются при уровне загрузки 3 (multi-user.target). Вы можете убедится, что в папке /etc/systemd/system/multi-user.target.wants есть ссылка на этот юнит:
ls -l /etc/systemd/system/multi-user.target.wants | grep nginx
4. Удаление из автозагрузки
Удалить сервис из автозагрузки можно, указав опцию disable:
sudo systemctl disable имя_сервиса
Автозагрузка сервисов пользователя Linux
Кроме системных сервисов, Systemd поддерживает сервисы, запускаемые от имени обычных пользователей. Такие сервисы не требуют прав суперпользователя для управления ими. Для управления такими сервисами нужно использовать опцию —user.
Обычно такие сервисы запускаются при старте первой сессии пользователя и завершаются при завершении его последней сессии. Для того чтобы посмотреть какие сервисы текущего пользователя добавлены в автозагрузку используйте такую команду:
systemctl list-unit-files —user —type=service —state=enabled
Для добавления сервиса в автоазгрузку используйте команду enable с опцией —user. Например для добавления pipewire в автозагрузку выполните:
systemctl enable —user pipewire
Аналогично всё будет работать для отключения автозагрузки:
systemctl disable —user pipewire
Если вы хотите чтобы для конкретного пользователя его сервисы запускались при загрузке системы, нужно выполнить такую команду:
sudo loginctl enable-linger имя_пользователя
Например если имя пользователя sergiy:
sudo loginctl enable-linger sergiy
После этого вы можете убедится в том, что это работает авторизовавшись от имени другого пользователя и посмотрев состояние сервиса. Например, для Pipewire:
sudo systemctl —user —machine=sergiy@ status pipewire —no-pager
Выводы
В этой статье мы рассмотрели как управлять автозагрузкой сервисов в Linux. Более подробно про автозагрузку в целом читайте в статье автозагрузка в Linux. В ней рассматривается не только автозагрузка сервисов, но и другие способы автозагрузки программ.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.