Как включить systemd в подсистеме Windows для Linux (WSL)

Хороший или плохой systemd в Linux будет зависеть от того, с кем вы разговариваете, но это важно настолько, что некоторые Подсистема Windows для Linux (WSL) сообщество выстраивало свои собственные способы его реализации. Microsoft уже сделала всю работуоднако в партнерстве с Canonical официально внедрил systemd в WSL.

Однако изначально он не доступен всем и включен по умолчанию. У вас также есть возможность отключить его в любое время после его включения. Вот что вам нужно знать.

Что такое системд?

\r\n https://www.youtube.com/watch? v=Ja3qikzd-as\r\n

Краткое официальное описание systemd:

Systemd — это набор основных строительных блоков для системы Linux. Он предоставляет диспетчер системы и служб, который работает с PID 1 и запускает остальную часть системы.

Некоторые из самых популярных дистрибутивов Linux уже используют systemd по умолчанию при установке на «голое железо». Некоторые из них, например Ubuntu и Debian, также доступны на WSL.

Включение systemd в WSL еще больше приближает этот инструмент к работе с Linux. Это также необходимо для некоторых инструментов, которые теперь легко использовать в WSL, таких как Snap, microk8s и systemctl.

Что вам нужно, чтобы получить systemd в WSL

Если вы используете версию WSL для Windows, то есть ту, которую вы включили через PowerShell и не загрузили из Магазина, у вас изначально не будет systemd. Его получат только те, кто использует инсайдерскую сборку Windows 11 или те, кто использует WSL, загруженный из Microsoft Store. Нужный вам номер версии — 0.67.6 и выше.

Чтобы проверить, правильная ли у вас версия, просто откройте окно PowerShell и введите wsl --версия и проверьте ответ. Если она ниже 0.67.6, зайдите в Microsoft Store и скачать WSL. Кроме того, вы можете загрузить последнюю версию с сайта Репозиторий WSL на GitHub.

В будущем всем пользователям будет добавлена ​​поддержка systemd, и вы сможете проверить наличие обновлений WSL, введя wsl --обновить в PowerShell.

Альтернативно, если вы используете Ubuntu Preview на WSL, systemd добавляется автоматически.

Как включить systemd

Чтобы включить systemd, по крайней мере прямо сейчас, вам придется добавить инструкцию в свой wsl.conf файл. Это файл конфигурации, который можно найти в любом дистрибутиве WSL Linux. Он позволяет выполнять настройку отдельно для каждого дистрибутива, а не изменять глобальные параметры WSL.

Это простой текстовый файл, поэтому вам просто нужно открыть его в текстовом редакторе. В этом примере мы используем Nano. Откройте wsl.conf в выбранном вами дистрибутиве Linux, введя следующее:

sudo nano /etc/wsl.conf

Скорее всего, теперь вы будете просматривать пустой документ, если только вы ранее не создали собственный файл конфигурации.

Чтобы включить systemd, просто введите это в файл wsl.conf:

[boot]
systemd=true

Теперь вы можете просто сохранить файл и выйти из него (CTRL+O для сохранения и CTRL+X для выхода). Отсюда вам нужно полностью закрыть сеанс WSL. Закройте Linux, вернитесь в окно PowerShell и введите:

wsl.exe--shutdown

Это полностью отключит WSL на вашем компьютере. Теперь просто заново откройте дистрибутив Linux. Первая загрузка может занять несколько секунд дольше, но когда она запустится, у вас будет запущен systemd. Вы можете проверить его работу с помощью systemctl, одного из сервисов, использующих systemd:

systemctl list-unit-files --type=service

Теперь вы должны увидеть список запущенных служб. Это все, что нужно для включения systemd. И, конечно же, изменив значение false в вашем wsl.conf, вы можете отключить его, если захотите, в любое время.

Использование Snap в Ubuntu на WSL

Одним из дополнительных преимуществ использования systemd в Ubuntu на WSL является то, что Snap теперь работает правильно. Не все захотят его использовать, но это еще одна функция, к которой имеют доступ пользователи WSL. И есть несколько полезных пакетов Snap, которые вы можете попробовать.

Nextcloud, например, является альтернативой Microsoft 365 и облачным приложениям и хранилищу Google с открытым исходным кодом. Snap Nextcloud — один из лучших способов его установки в Linux, и теперь он доступен и в WSL. Установка snaps аналогична использованию apt (или любого другого менеджера пакетов), заменяющего snap:

sudo snap install nextcloud

Вы можете быстро найти доступные снимки, проверив Snapcraft.io.