Hasta hace poco, la comunidad de WSL había ideado sus propias soluciones para agregar soporte systemd a sus distribuciones. Cualquiera que sea su postura personal sobre systemd, para algunos procesos es una herramienta crítica. Ahora, sin embargo, es oficialmente parte de WSL.
Eventualmente, será solo algo que está ahí y no tendrás que hacer mucho con eso. Pero igualmente, es posible que no lo desee y necesite saber cómo apagarlo.
Afortunadamente, el proceso para habilitar y deshabilitar manualmente systemd en WSL es simple e implica esencialmente los mismos pasos.
¿Qué es systemd?
Oficialmente, systemd se describe como:
«Systemd es un conjunto de componentes básicos para un sistema Linux. Proporciona un sistema y un administrador de servicios que se ejecuta como PID 1 e inicia el resto del sistema».
En un nivel más simple, es algo que necesitará si desea acceder a cosas como paquetes instantáneos en Ubuntu. De hecho, Microsoft trabajó con Canonical para poner systemd en funcionamiento en WSL.
Muchas distribuciones de Linux usan systemd cuando las ejecuta en bare metal o en una máquina virtual. Su adición a WSL es otra casilla marcada para hacer que la experiencia de Linux en Windows de Microsoft se acerque más a la realidad.
Requisitos del sistema
Para tener acceso a systemd, deberá tener WSL versión 0.67.6 y superior. Si está utilizando la versión de Microsoft Store o ha configurado recientemente WSL en su máquina, entonces ya debería estar en una versión compatible.
Para verificar qué versión de WSL tiene instalada, abra PowerShell y escriba:
wsl --version
Si necesita actualizar a una versión compatible, puede hacerlo desde la misma ventana de PowerShell con el comando:
wsl --update
De manera predeterminada, obtendrá la última versión de Microsoft Store, pero si prefiere obtenerla de GitHub, puede agregar –web-download al final del comando. El archivo también está disponible para descargarlo manualmente desde el repositorio de GitHub.
Los usuarios de Ubuntu Preview en WSL deberían tener systemd disponible automáticamente.
Cómo habilitar y deshabilitar systemd en WSL
Tener acceso a systemd es solo la primera parte, para usarlo debe habilitarlo. Es probable que haya un momento en que ya esté habilitado de forma predeterminada, ya que los fabricantes de distribuciones ahora pueden hacerlo.
Pero, si el tuyo no lo tiene activado, deberás activarlo. Y si no lo quiere, es posible que desee saber cómo apagarlo. Toda la magia se maneja en el archivo wsl.conf, que es, como sugiere la extensión, un archivo de configuración para sus distribuciones WSL individuales. Deberá hacer esto individualmente en todas sus diferentes distribuciones, actualmente, systemd no se puede habilitar de forma global.
En la distribución de Linux que haya elegido, abra el archivo wsl.conf con el siguiente comando:
sudo nano /etc/wsl.conf
Esto abrirá el editor de texto Nano y, a menos que ya haya creado un archivo de configuración, estará completamente en blanco. Para habilitar systemd, deberá agregar las siguientes instrucciones:
[boot]
systemd=true
Si está tratando de deshabilitarlo, puede establecerlo en falso o simplemente eliminar la instrucción por completo. Establecerlo en falso al menos hace que sea un poco más conveniente volver a habilitarlo en el futuro.
Desde aquí, guarde el archivo y salga (usando CTRL+O para guardar y CTRL+X para salir) y luego cierre la pestaña de Linux y regrese a PowerShell. Para asegurarse de que systemd se habilite, deberá realizar un apagado completo de WSL, esperar al menos ocho segundos y luego volver a iniciarlo. Use este comando para apagar completamente:
wsl.exe --shutdown
Después de la espera de ocho segundos, abra su distribución de Linux nuevamente y systemd ahora debería estar habilitado. El primer arranque puede demorar un poco más, pero cuando esté listo, puede verificar que systemd esté funcionando ingresando este comando:
systemctl list-unit-files --type=service
Suponiendo que todo salió según lo planeado, esto producirá una lista completa de todos los servicios en ejecución. Si no se ha habilitado systemd, verá un mensaje de error.
Una de las razones más obvias para tener systemd instalado, al menos en Ubuntu, es usar snap para instalar paquetes. Una vez que systemd está habilitado, puede instalar paquetes, como Nextcloud, ingresando:
sudo snap install nextcloud
Si desea saber qué hay disponible a través de Snap, puede explorar la biblioteca completa en snapcraft.io