Использование systemd в WSL
При попытке использовать systemd для запуска и управления сервисами на WSL я столкнулся с ошибкой "System has not been booted with systemd as init system (PID 1).". Раньше мы не могли использовать systemd на WSL, что было весьма печально, однако начиная с версии WSL 0.67.6 такая возможность появилась.
Прежде всего, давайте убедимся, что мы обновили WSL до последней версии. Для этого в терминале Windows вводим:
wsl --update
Далее, стартуем любой установленный дистрибутив и открываем внутренний файл /etc/wsl.conf в любом текстовом редакторе.
sudo nano /etc/wsl.conf
Нам нужно добавить секцию boot, если её нет и в ней использовать говорящую саму за себя настройку systemd:
[boot]
systemd=true
Сохраняем файл, перезапускаем WSL.
wsl --shutdown
После этого, systemd в WSL начинает работать как положено и мы можем добавлять сервисы и управлять ими.
Никогда бы не подумал, что буду писать такого рода заметки, но Windows 11 + WSL 2 действительно мощная вещь, которую я могу смело рекомендовать всем разработчикам, страдающим на декстопных Linux дистрибутивах.