Activar servicios del Windows Subsystem for Linux al arrancar nuestro ordenador
Ya hemos hablado anteriormente del WSL, el subsistema de Linux para Windows con el que podemos instalar nuestra distribución favorita de Linux que se ejecuta en paralelo con Windows. Hablamos de tener Linux en una ventanita, sí, pero es mucho más que eso. Una vez empezamos a trabajar con el sistema Linux, querremos tener algunos servicios activos, como por ejemplo cron (servicio que ejecuta comandos regularmente), ssh (servicio que nos permite acceder a nuestro ordenador desde el exterior mediante la consola ssh), o un firewall como ufw (firewall muy sencillo de emplear en linux). Sin embargo, al arrancar nuestro WSL estos servicios están desactivados y no se ejecutarán hasta que lo hagamos nosotros, y es algo que no queremos hacer manualmente, ¿verdad?
Acceder a la carpeta de inicio de shell startup de windows
Esta es una carpeta que no todo el mundo conoce. Windows ejecuta todos los scripts y comandos que encuentre en esta carpeta al iniciar tu windows. Esto te permite programar algunas automatizaciones de forma que, cuando enciendas tu ordenador con Windows, se ejecuten ciertas tareas que te interese. Las posibilidades son múltiples: por ejemplo, podrías arrancar la música de ambiente, o podrías enviar un mensaje para avisar a alguien de que se ha encendido el ordenador, o arrancar una VPN en tu sistema Linux… bueno, en este caso vamos a a arrancar algunos servicios del WSL, en concreto el sistema cron.
Para acceder a la carpeta, deberemos pulsar la tecla de Windows y la R a la vez, y en el cuadro de diálogo que nos aparece escribir:
shell:startup

Crear un documento de texto con extensión .bat
Al pulsar el botón derecho del ratón, podremos crear un nuevo documento de texto. Es importante que la extensión de dicho documento sea «.bat», que son los scripts ejecutables más antiguos que vamos a encontrar en Windows. Por cierto, a partir del momento que le cambies la extensión no hagas doble clic para abrir el archivo, pues lo estarías ejecutando. Debes siempre pulsar el botón derecho sobre él y elegir editar.
En el contenido del archivo debes escribir lo siguiente:
wsl echo EstaEsMiPassword| wsl sudo -S service cron start
Guarda el fichero y …. ¡Ya has terminado! Con esto conseguimos que tu WSL y el servicio cron arranquen directamente al arrancar tu sistema operativo. Esto es muy útil tanto si estás empezando en el mundo de Linux y quiere practicar/aprender como si tienes un WSL que quieres tener trabajando en paralelo con tu Windows, como es nuestro caso.
Alternativas de configuración
Sí, para cada opción de configuración de nuestro sistema existen muchas alternativas, y en muchos casos se trata de un compromiso entre configuración/facilidad de uso. Nosotros hemos utilizado la que nos ha resultado más útil en este momento, y aquí mencionamos algunas configuraciones alternativas que puedes tener en cuenta, ¡avísanos si se te ocurre algo más!
- Si tienes otro WSL instalado, deberás indicar en qué WSL quieres ejecutar los comandos. En nuestro caso, tenemos solo uno que es el que se usa por defecto.
- Si quieres, puedes, en lugar de indicar los servicios directamente, crear un script dentro de la WSL y ejecutar ese script directamente. Esto quizás te pueda resultar útil si tienes un sistema de logging en el ecosistema linux que quieras aprovechar en tu WSL. También para cuando no quieres que se arranque todo al iniciar en windows, sino cuando ejecutes tu WSL manualmente.
- Hemos optado por poner la contraseña manualmente y pasársela al comando sudo. Puedes modificar tu usuario para que pueda hacer sudo sin poner la contraseña y así no se lo tienes que pasar al script, pero… nosotros no nos sentimos cómodos con un usuario que haga sudo sin contraseña, probamos muchas cosas, los sistemas se pueden acceder en remoto y… ¿qué ocurre si se nos cuela un script/usuario malintencionado en el WSL?
De momento eso es todo, ¡Te esperamos en los comentarios!