* Fix localization text, Intune capitalization, ADMX indentation, unused import - distributions/validate.py: Remove unused 'import base64' - en-US/en-GB Resources.resw: Fix word order 'the list distribution' -> 'the distribution list' in MessageCouldFetchDistributionList - en-US/en-GB Resources.resw: Remove trailing space from MessageCorruptedDistroRegistration value - intune/en-US/WSL.adml: Fix 'For Linux' -> 'for Linux' capitalization (5 occurrences) to match official product name - intune/WSL.admx: Fix inconsistent 3-space indent to 4-space on AllowWSL1 and CustomKernelUserSettingConfigurable policies * Fix grammar, typos, and formatting in docs and source code - WmiService.h: Fix duplicated word 'of of' -> 'is of' in WQL comment - drvfs.md: Fix 'which tell' -> 'which tells' (subject-verb agreement), double space, second 'tell' -> 'tells' - systemd.md: Fix 'tries synchronizes' -> 'tries to synchronize' - wslhost.exe.md: Fix 'processes terminates' -> 'process terminates' - boot-process.md: Add missing 'in' preposition, fix C:/ -> C:\, fix lowercase 'linux' to 'Linux' (4 occurrences), fix misplaced parenthesis - init.md: Fix double space before hvsocket backtick - session-leader.md: Fix heading level ## -> ### to match sibling section - CONTRIBUTING.md: Fix double period after bold security notice - debugging.md: Fix missing word 'be' in 'can enabled', fix 'process' -> 'processes' - index.md: Add missing period at end of sentence - technical-documentation/index.md: Fix 'API's' -> 'APIs' (remove incorrect apostrophe) - relay.md: Fix lowercase 'linux' to 'Linux' (3 occurrences) - localhost.md: Fix lowercase 'linux' to 'Linux' - plan9.md: Fix lowercase 'linux' to 'Linux' * update errormessages testcase --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
1.4 KiB
Systemd
Systemd support for a WSL distribution can be enabled by setting the following in /etc/wsl.conf:
[boot]
systemd=true
When enabled, init will launch /sbin/init (which points to systemd's init) when the distribution starts. One key difference when this setting is enabled is that init won't be pid 1 in the given distribution, since systemd's init requires running as pid 1, so init will fork(), and launch systemd in the parent while continuing WSL configuration in the child process.
After launching /sbin/init, init waits for systemd to be ready by waiting for systemctl is-system-running to return either running, or degraded. After a given amount of time, WSL will time out and allow the distribution to continue starting, even if systemd isn't ready.
User sessions
When systemd is enabled, WSL tries to synchronize launching processes with systemd user sessions. This is currently done by launching login -f <user> to start the associated systemd user session.
Additional systemd configuration
To improve compatibility with systemd, WSL creates various systemd configuration files during boot (under /run). These configurations files are used to:
- Protect the WSL binfmt interpreter from being deleted by
systemd-binfmt.service - Protect the X11 socket from being deleted by
systemd-tmpfiles-setup.service