When starting any Linux system, there comes a time when the kernel transfers control to the tools of the respective distribution – usually to “/ sbin / init”. On practically all modern distributions, “init” is now a symlink to systemd. Even if some veteran administrators have objections, the major distributions have agreed on systemd as the standard.
Not with WSL
In the context of Microsoft’s Windows Subsystem for Linux (WSL), however, this regularly leads to problems and sometimes considerable compatibility problems. The operation of systemd is simply not provided for in the emulation concept that Microsoft implements for WSL; the component is then also missing in the WSL images of the available distributions. Strictly speaking, there is no “real” system start in WSL.
Instead, WSL controls a large part of the services itself using a rudimentary init system. If a WSL user installs a service that requires systemd in “normal” Ubuntu, it will fail to start in WSL – if the respective packages are not specifically for WSL are adjusted. However, WSL actually wants to avoid such modifications.
Microsoft knows the problem – and sometimes mentions crude workarounds in its own documentation. This falls under in the MongoDB example, for example, downloading old init scriptswhich should then get the service running in WSL.
Canonical now wants to put an end to the hustle and bustle and integrate systemd support into its WSL images, according to internal news. According to an entry in Ubuntu’s Discourse forum internal images for WSL already contain a proof-of-concept (PoC) version of systemd. Such PoC implementations are usually the second step of a technical solution on the way from the concept to the productively usable solution.
However, the developers have not yet named a point in time when official WSL images will receive this systemd support. It is therefore also completely unclear whether and when the improvements to the WSL images from other manufacturers will be available. WSL users still have to be patient.