systemd en WSL: qué cambia y cómo activarlo

systemd en WSL: qué cambia y cómo activarlo

Durante años, una de las limitaciones más molestas de WSL fue que no arrancaba con systemd. Servicios que en cualquier Ubuntu se gestionan con systemctl había que lanzarlos a mano o con trucos. Eso cambió en septiembre de 2022, y en las instalaciones nuevas de Ubuntu en WSL systemd ya viene activado. Qué significa y cómo comprobarlo.

Por qué importa

systemd es el sistema de arranque y gestor de servicios de casi todas las distribuciones actuales. Sin él no funcionan como se espera:

  • systemctl start, enable y compañía.
  • Los temporizadores de systemd (la alternativa moderna a cron).
  • Paquetes que dependen de él, como snap, o servicios como Docker instalado de forma nativa.
  • journalctl para leer los registros.

Cómo saber si lo tienes

ps -p 1 -o comm=

Si devuelve systemd, está activo. Si devuelve init, no.

Cómo activarlo

Necesitas WSL 0.67.6 o posterior (wsl --version; si no, wsl --update). Dentro de la distribución, edita /etc/wsl.conf:

[boot]
systemd=true

Sal y, desde PowerShell, reinicia WSL:

wsl --shutdown

Al volver a entrar, systemctl list-units --type=service debería mostrar los servicios en marcha.

Lo que hay que tener en cuenta

  • Arranque algo más lento. Con systemd la distribución tarda uno o dos segundos más en estar lista. En la práctica apenas se nota.
  • Servicios que no sirven en WSL. Algunos servicios pensados para hardware real fallan al arrancar. Revisa systemctl --failed y desactiva lo que no necesites.
  • WSL se apaga solo. Si cierras todas las terminales, WSL detiene la máquina virtual al cabo de unos segundos, y con ella tus servicios. Para servicios permanentes, WSL no es el sitio: usa un servidor de verdad.

La documentación de referencia está en el artículo de Microsoft sobre systemd en WSL.