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 на сценарий по вашему выбору.
Заключение
Вы можете изменить свою систему, особенно то, как она загружается, но помните, что это имеет множество последствий для каждой службы, поэтому убедитесь, что ваш код стабилен и быстро выполняется.