Uso de systemd para administrar servicios de Linux con WSL
Artículo
Subsistema de Windows para Linux (WSL) ahora admite systemd, un sistema de inicialización y un administrador de servicios que usan muchas distribuciones populares de Linux, como Ubuntu, Debian, etc. (¿Qué es systemd?).
Según systemd.io: "systemd es un conjunto de bloques de creación básicos para un sistema Linux. Proporciona un sistema y administrador de servicios que se ejecuta como PID 1 e inicia el resto del sistema".
Principalmente un sistema de inicialización y un administrador de servicios, systemd incluye características como el inicio a petición de demonios, el mantenimiento de puntos de montaje y montaje automático, la compatibilidad con instantáneas y el seguimiento de procesos mediante grupos de control de Linux.
La mayoría de las distribuciones principales de Linux ahora ejecutan systemd, por lo que habilitarlo en WSL acerca aún más la experiencia al uso de Linux sin sistema operativo. Consulte el anuncio de vídeo con demostraciones systemd o ejemplos de uso de systemd a continuación para obtener más información sobre lo que systemd tiene que ofrecer.
Para habilitar systemd para cualquier otra distribución de Linux que se ejecute en WSL 2 (cambiando el valor predeterminado de mediante el init de systemv):
Abra una línea de comandos para la distribución de Linux y escriba cd / para acceder al directorio raíz y, a continuación ls para enumerar los archivos. Verá un directorio denominado "etc" que contiene el archivo de configuración de WSL para la distribución. Abra este archivo para que pueda realizar una actualización con el editor de texto Nano escribiendo: nano /etc/wsl.conf.
Agregue estas líneas en el archivo wsl.conf que ahora tiene abierto para cambiar el init usado para systemd:
[boot]
systemd=true
Salga del editor de texto Nano (Ctrl + X, seleccione Y para guardar el cambio). A continuación, deberá cerrar la distribución de Linux. Puede usar el comando wsl.exe --shutdown en PowerShell para reiniciar todas las instancias de WSL.
Una vez reiniciada la distribución de Linux, systemd estará en ejecución. Puede confirmar mediante el comando: systemctl list-unit-files --type=service, que mostrará el estado de los servicios asociados a la distribución de Linux.
Obtenga más información sobre configuración avanzada en WSL, incluida la diferencia entre los archivos de configuración de wsl.conf (específicos de la distribución) y .wslconfig (global), cómo actualizar la configuración de montaje automático, etc.
Vídeo de demostración de SystemD
Microsoft se ha asociado con Canonical para ofrecer soporte técnico a systemd en WSL. Craig Loewen (PM para WSL en Microsoft) y Oliver Smith (PM para Ubuntu en WSL en Canonical) anuncian compatibilidad con systemd y muestran algunas demostraciones de lo que habilita.
Algunos ejemplos de aplicaciones Linux que dependen de systemd son:
snap: un sistema de empaquetado de software e implementación desarrollado por Canonical para sistemas operativos que usan el kernel de Linux y el sistema de inicialización systemd. Los paquetes se denominan "snaps", la herramienta de línea de comandos para compilar snaps se denomina "Snapcraft", el repositorio central donde se pueden descargar o instalar los snaps se denomina "Snap Store" y el demonio necesario para ejecutar snaps (descargar desde la tienda, montar en su lugar, limitar y ejecutar aplicaciones fuera de ellas) se denomina "snapd". Todo el sistema se conoce a veces como "snappy". Intente ejecutar el comando: snap install spotify.
systemctl: una utilidad de línea de comandos que se usa para controlar e inspeccionar el sistema y para ayudarle a interactuar con los servicios en la distribución de Linux. Pruebe el comando: systemctl list-units --type=service para ver qué servicios están disponibles y su estado.
Algunos tutoriales relacionados que muestran formas de usar systemd:
¿Cómo afecta la habilitación de systemd a la arquitectura de WSL?
La habilitación del soporte técnico de systemd requiere cambios en la arquitectura de WSL. Como systemd requiere PID 1, el proceso de inicialización de WSL iniciado dentro de la distribución de Linux se convierte en un proceso secundario del sistema. Dado que el proceso de inicialización de WSL es responsable de proporcionar la infraestructura para la comunicación entre los componentes de Linux y Windows, cambiar esta jerarquía requiere replantearse algunas de las suposiciones realizadas con el proceso de inicialización de WSL. Se tuvieron que realizar modificaciones adicionales para garantizar un apagado limpio (ya que el apagado está controlado ahora por systemd) y para tener compatibilidad con WSLg, el componente de WSL que ejecuta interfaces gráficas de usuario (GUI) de Linux o las aplicaciones de Linux que se muestran en ventanas en lugar de la línea de comandos.
También es importante tener en cuenta que, con estos cambios, los servicios con sistema NO mantendrán activa la instancia de WSL. La instancia de WSL permanecerá activa de la misma manera que hizo antes de esta actualización, sobre la que puede consultar más información en esta entrada de blog sobre soporte técnico de tareas en segundo plano de 2017.
Colaborar con nosotros en GitHub
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.
Comentarios de Windows Subsystem for Linux
Windows Subsystem for Linux es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
En este módulo, aprenderá a usar el Subsistema de Windows para Linux (WSL) con Visual Studio Code (VS Code). Exploraremos el proceso de instalación y los conceptos básicos del uso del WSL. Además, instalaremos y utilizaremos la extensión WSL de Visual Studio Code. Por último, mostraremos cómo depurar y ejecutar código de Python en VS Code en nuestro entorno de WSL.