systemd

Systemd - как запускает вашу систему

Systemd - как запускает вашу систему
Systemd был разработан, когда разработчики обнаружили, что параллельный запуск системы невозможен. Старые системы просматривают свои системные файлы запуска один за другим. Это может привести к остановке загрузки при ожидании медленных ресурсов. Один из примеров этого - когда процессу требуется, чтобы сеть работала. Использование сети очень медленное, другие ресурсы не должны ждать. Эту проблему можно решить другими способами, но с systemd весь запуск выполняется параллельно, где это возможно. В результате должен быть намного быстрее запускаться для сложных систем, в том числе для настольной системы.

Systemd: отец всех остальных процессов

Linux и любая другая система * nix всегда запускает процесс, являющийся отцом всех других процессов. Когда вы используете Systemd, этот процесс называется systemd, процесс всегда называется init, независимо от системы инициализации. После запуска systemd запустит демонов, запускающих подсистемы. Демоны контролируют, какие ресурсы у вас есть и какие системы открыты. Запрос на вход в систему - это служба, управляемая systemd. Systemd запускает многие другие службы, а также монтирует все ваши диски, включая оснастку.

Как вы контролируете то, что начинается?

Прежде всего, самая ранняя система инициализации имела уровни запуска, которые узнают многие читатели. Уровень выполнения 1 был однопользовательским, 2 - многопользовательским режимом без сети и 3-5 - многопользовательским и графическим. Установка уровня запуска на 0 означает остановку, а 6 означает перезагрузку. Разработчики systemd сочли эти уровни неясными, поэтому изменили их, чтобы называть их целями. Цели не совсем такие же, но имеют похожую функцию. Когда работает определенная цель, работает определенная коллекция юнитов. Подробнее о единицах позже.

Установка «уровня выполнения», называемого целью.

Вы можете изменить цель во время работы, например, вы можете использовать терминал, чтобы установить цель в многопользовательском режиме. Это остановит ваш графический интерфейс, X или Wayland, но позволит вам и другим пользователям войти в систему с помощью текстовой консоли. Используйте следующую команду.

$ systemctl изолировать многопользовательский.цель

Или, если вы хотите запустить свой рабочий стол, используйте вместо этого следующую команду.

$ systemctl изолировать графический.цель

Что вас действительно интересует, так это как начать правильный уровень, вы можете узнать, что у вас есть прямо сейчас, таким образом.

$ systemctl get-default

Чтобы изменить значение по умолчанию, установите его.

$ systemctl set-default графический.цель

Эта команда фактически запускает множество модулей и служб при загрузке компьютера. Вы можете захотеть запустить или остановить отдельную службу, хотя.

ЗАПУСК, остановка, включение и отключение службы.

Здесь у вас есть шанс изменить то, что происходит при загрузке и во время нормальной работы. В отличие от целей, юниты являются специальными для конкретной службы. Чтобы остановить службу, вы используете 'systemctl stop', в равной степени вы можете использовать 'start' и 'restart'. Чтобы служба запускалась при загрузке, вы используете 'enable', чтобы остановить ее 'disable'. Выберите службу и запустите и остановите ее, пока она работает.

$ systemctl статусные чашки.услуга

Эта команда показывает статус службы, а также показывает список действий, предпринятых системой в отношении службы. Чтобы остановить службу, используйте команду ниже.

$ systemctl стоп-чашки.услуга

Служба остановлена ​​для текущего сеанса. Чтобы изменить его, чтобы он не запускался при следующей загрузке, используйте disable.

$ systemctl отключить чашки.услуга

Обратите внимание, что вы можете только отключить службу, это не повлияет на вашу текущую ситуацию. Сервис просто продолжает работать. Однако при следующей загрузке служба не запустится.

Systemd также контролирует крепления, устройства, розетки и многое другое. Единицы ниже и их легче понять, если вы раньше имели дело с Linux. Вы также можете установить их самостоятельно, но наибольшее влияние на загрузку оказывает управление службами.

Как вы добавляете свои собственные скрипты?

Вы можете довольно легко добавить свои собственные сценарии, детали, которые интересно знать, - это то, как вы делаете свой сценарий или службу зависимыми от других. Это наглядно продемонстрировано в этом служебном файле возобновления Wi-Fi.

[Ед. изм]
Описание = Перезапустить сетевой менеджер при возобновлении работы
После = приостановить.цель
После = спящий режим.цель
После = гибридный сон.цель
 
[Услуга]
Тип = oneshot
ExecStart = / bin / systemctl перезапустить сетевой менеджер.услуга
 
[Установить]
WantedBy = приостановить.цель
WantedBy = спящий режим.цель
WantedBy = гибридный сон.цель

Этот код создает службу, которая выполняется один раз (один выстрел) после трех целей, упомянутых в коде. В этом случае исполняемый код представляет собой единственную команду. Вы также можете указать ExecStart на сценарий по вашему выбору.

Заключение

Вы можете изменить свою систему, особенно то, как она загружается, но помните, что это имеет множество последствий для каждой службы, поэтому убедитесь, что ваш код стабилен и быстро выполняется.

Как использовать чит-движок GameConqueror в Linux
В статье содержится руководство по использованию чит-движка GameConqueror в Linux. Многие пользователи, играющие в игры на Windows, часто используют п...
Лучшие эмуляторы игровой консоли для Linux
В этой статье будет перечислено популярное программное обеспечение для эмуляции игровых консолей, доступное для Linux. Эмуляция - это уровень совмести...
Лучшие дистрибутивы Linux для игр в 2021 году
Операционная система Linux прошла долгий путь от своего первоначального простого серверного вида. Эта ОС значительно улучшилась за последние годы и те...