Использование systemd для управления службами Linux с помощью WSL
подсистема Windows для Linux (WSL) теперь поддерживает системный, системный и диспетчер служб, используемый многими популярными дистрибутивами Linux, такими как Ubuntu, Debian и многое другое. (Что такое система?).
Системная система init по умолчанию недавно изменилась с SystemV, с системным значением по умолчанию для текущей версии Ubuntu , которая будет установлена с помощью wsl --install
команды по умолчанию. Дистрибутивы Linux, отличные от текущей версии Ubuntu, по-прежнему могут использовать инициализацию WSL, аналогичную инициализации SystemV. Сведения об изменении системы см. в разделе "Как включить системные".
Что такое система в Linux?
Согласно systemd.io: "система представляет собой набор основных стандартных блоков для системы Linux. Он предоставляет систему и диспетчер служб, который выполняется как PID 1 и запускает остальную часть системы".
В первую очередь система и диспетчер служб содержат такие функции, как запуск daemons, подключение и обслуживание точек автоматического подключения, поддержка моментальных снимков и отслеживание процессов с помощью групп управления Linux.
Большинство основных дистрибутивов Linux теперь работают в системе, поэтому включение его в WSL еще ближе к использованию Linux без операционной системы. Ознакомьтесь с видеороликами с системными демонстрациями или примерами использования systemd ниже, чтобы узнать больше о том, что система имеет для предложения.
Как включить систему?
Systemd теперь используется по умолчанию для текущей версии Ubuntu , которая будет установлена с помощью wsl --install
команды по умолчанию.
Чтобы включить систему для любых других дистрибутивов Linux, работающих в WSL 2 (изменение по умолчанию с помощью systemv init):
Убедитесь, что версия WSL — 0.67.6 или более позднюю. (Чтобы проверить, выполните команду
wsl --version
. Чтобы обновить, запуститьwsl --update
или скачать последнюю версию из Microsoft Store.)Откройте командную строку для дистрибутива Linux и введите
cd /
для доступа к корневому каталогу, а затемls
перечислите файлы. Вы увидите каталог с именем "etc", содержащий файл конфигурации WSL для дистрибутива. Откройте этот файл, чтобы сделать обновление с помощью текстового редактора Nano, введя следующее:nano /etc/wsl.conf
Добавьте эти строки в
wsl.conf
файл, который теперь открыт для изменения инициализации, используемой для systemd:[boot] systemd=true
Закройте текстовый редактор Nano (CTRL+ X, выберите Y, чтобы сохранить изменение). Затем необходимо закрыть дистрибутив Linux. Для перезапуска всех экземпляров WSL можно использовать команду
wsl.exe --shutdown
в PowerShell.
После перезапуска дистрибутива Linux система будет запущена. Вы можете подтвердить с помощью команды: systemctl list-unit-files --type=service
которая будет отображать состояние всех служб, связанных с дистрибутивом Linux.
Узнайте больше о конфигурации расширенных параметров в WSL, включая разницу между wsl.conf
файлами конфигурации (для конкретного дистрибутива) и .wslconfig
(глобальными) файлами конфигурации, обновлением параметров автоматического отключения и т. д.
Видео с системной демонстрацией
Корпорация Майкрософт сотрудничает с Каноническим, чтобы обеспечить системную поддержку WSL. См. статью Craig Loewen (PM для WSL в Майкрософт) и Оливер Смит (PM для Ubuntu в WSL в Каноническом) объявит системную поддержку и показать некоторые демонстрации того, что это позволяет.
Учебники Оливера на основе этих демонстраций в блоге Ubuntu: "Использование оснастки для создания экземпляра Nextcloud в минутах на WSL", "Управление веб-проектами с помощью LXD" и "Запуск Эхо-бота .Net в качестве системной службы в Ubuntu WSL"
Примеры системы
Ниже приведены несколько примеров приложений Linux, которые зависят от системных приложений:
snap: система упаковки программного обеспечения и развертывания, разработанная каноническим для операционных систем, использующих ядро Linux и системную инициализацию. Пакеты называются "snaps", средство командной строки для создания оснастки называется Snapcraft, центральный репозиторий, где оснастки можно скачать или установить, называется "Snap Store", а управляющая программа, необходимая для запуска оснастки (скачивание из магазина, подключение к месту, ограничение и запуск приложений из них) называется "snapd". Вся система иногда называется "snappy". Попробуйте выполнить команду:
snap install spotify
microk8s: open-source, low-ops, минимальный рабочий Kubernetes, который автоматизирует развертывание, масштабирование и управление контейнерными приложениями. Следуйте инструкциям по установке MicroK8s в WSL2, ознакомьтесь с руководством по началу работы или просмотрите видео в Kubernetes в Windows с microK8s и WSL 2.
systemctl: служебная программа командной строки, используемая для управления системой и проверки системных служб, а также для взаимодействия со службами в дистрибутиве Linux. Попробуйте выполнить команду:
systemctl list-units --type=service
чтобы узнать, какие службы доступны и их состояние.
В нескольких связанных руководствах показано, как использовать системные методы:
Как включить системную архитектуру WSL?
Включение поддержки системных необходимых изменений в архитектуре WSL. Так как для системы требуется PID 1, процесс инициализации WSL, запущенный в дистрибутиве Linux, становится дочерним процессом системы. Поскольку процесс инициализации WSL отвечает за предоставление инфраструктуры для обмена данными между компонентами Linux и Windows, изменение этой иерархии требует переосмысления некоторых предположений, сделанных с помощью процесса инициализации WSL. Необходимо внести дополнительные изменения, чтобы обеспечить чистое завершение работы (так как завершение работы контролируется системой сейчас) и обеспечить совместимость с WSLg, компонент WSL, на котором выполняются графические пользовательские интерфейсы Linux (GUIS) или приложения Linux, которые отображаются в окнах, а не в командной строке.
Важно также отметить, что при этих изменениях системные службы не будут поддерживать экземпляр WSL. Экземпляр WSL будет оставаться в живых таким же образом, как и в этом обновлении, который можно узнать больше в этой записи блога о поддержке фоновых задач с 2017 года.
Windows Subsystem for Linux