Systemd: padre de todos los demás procesos
Un sistema Linux, y cualquier otro * nix, siempre inicia un proceso que es el padre de todos los demás procesos. Cuando usa Systemd, ese proceso es systemd, el proceso siempre se llama 'init' independientemente del sistema de inicio. Una vez que systemd se esté ejecutando, iniciará los demonios que ejecutan los subsistemas. Los demonios controlan qué recursos tienes y qué sistemas están abiertos. Su mensaje de inicio de sesión es un servicio administrado por systemd. Systemd inicia muchos otros servicios y también monta todos sus discos, incluidos los montajes a presión.
¿Cómo controlas lo que comienza??
En primer lugar, el sistema de inicio más antiguo tenía niveles de ejecución que muchos lectores reconocerán. El nivel de ejecución 1 era el modo de usuario único, el modo multiusuario 2 sin conexión en red y el modo gráfico y multiusuario de 3-5. Establecer el nivel de ejecución en 0 significaba detener y 6 significaba reiniciar. Los desarrolladores de systemd encontraron que estos niveles no estaban claros, por lo que los cambiaron para que se llamaran objetivos. Los objetivos no son exactamente iguales pero tienen una función similar. Cuando se está ejecutando un objetivo específico, se está ejecutando una colección específica de unidades. Más sobre las unidades más adelante.
Establecer el "nivel de ejecución", llamado objetivo.
Puede cambiar el objetivo mientras se ejecuta, por ejemplo, puede usar un terminal para configurar su objetivo en multiusuario. Esto detendría su GUI, X o Wayland, pero le permitiría a usted y a otros iniciar sesión con una consola de texto. Usa el siguiente comando.
$ systemctl aislar multiusuario.objetivoO, si desea iniciar su escritorio, use el siguiente comando en su lugar.
$ systemctl aislar gráfico.objetivoLo que realmente te interesa es cómo comenzar el nivel correcto, puedes averiguar lo que tienes ahora mismo de esta manera.
$ systemctl get-defaultPara cambiar la configuración predeterminada.
$ systemctl set-default gráfico.objetivoEste comando en realidad hace que muchas unidades y servicios se inicien cuando arranca su computadora. Sin embargo, es posible que desee iniciar o detener un solo servicio.
INICIAR, detener, habilitar y deshabilitar un servicio.
Aquí es donde tiene la oportunidad de cambiar lo que sucede en el arranque y durante el funcionamiento normal. A diferencia de los objetivos, las unidades son especiales para un servicio en particular. Para detener un servicio, use 'systemctl stop', igualmente puede usar 'iniciar' y 'reiniciar'. Para hacer que un servicio se inicie en el arranque, use 'habilitar', para detenerlo 'deshabilitar'. Elija un servicio e inícielo y deténgalo mientras se está ejecutando.
Copas de estado de $ systemctl.ServicioEste comando muestra el estado del servicio, también muestra una lista de acciones tomadas por el sistema con respecto al servicio. Para detener el servicio, use el siguiente comando.
tazas de parada $ systemctl.ServicioEl servicio ahora está detenido para su sesión actual. Para cambiarlo para que no comience en el próximo arranque, use deshabilitar.
$ systemctl deshabilitar vasos.ServicioTenga en cuenta que solo puede deshabilitar el servicio, esto no tendría ningún efecto en su situación actual. El servicio sigue funcionando. Sin embargo, en el próximo arranque, no iniciará el servicio.
Systemd también controla soportes, dispositivos, enchufes y más. Las unidades son más bajas y más fáciles de entender, si ha trabajado con Linux antes. También puede configurarlos usted mismo, pero el mayor efecto en el arranque es controlar los servicios.
¿Cómo agregas tus propios scripts??
Puede agregar sus propios scripts con bastante facilidad, los detalles que son interesantes de saber es cómo hace que su script o servicio dependa de otros. Esto se demuestra claramente en este archivo de servicio de reanudación wifi.
[Unidad]Descripción = Reiniciar el administrador de red al reanudar
Después = suspender.objetivo
Después = hibernar.objetivo
Después = sueño-híbrido.objetivo
[Servicio]
Tipo = oneshot
ExecStart = / bin / systemctl reiniciar el administrador de red.Servicio
[Instalar en pc]
WantedBy = suspender.objetivo
WantedBy = hibernar.objetivo
WantedBy = sueño-híbrido.objetivo
Este código crea un servicio que ocurre una vez (one-shot) después de los tres objetivos mencionados en el código. El código que se ejecuta es en este caso un solo comando. También puede señalar ExecStart a un script de su elección.
Conclusión
Puede cambiar su sistema, especialmente cómo arranca, puede hacerlo usted mismo, pero tenga en cuenta que esto tiene muchas consecuencias para cada servicio, así que asegúrese de que su código sea estable y rápido de ejecutar.