Systemd cómo inicia su sistema

Systemd cómo inicia su sistema
Systemd se desarrolló cuando los desarrolladores descubrieron que no era posible comenzar el sistema en paralelo. Los sistemas más antiguos atraviesan los archivos de inicio de su sistema uno por uno. Esto puede hacer que la bota se detenga cuando espera recursos que sean lentos. Un ejemplo de esto es cuando un proceso necesita que la red se ejecute. El uso de la red es muy lento, otros recursos no deberían tener que esperar. Este problema se puede mitigar de otras maneras, pero con Systemd, toda la inicio se realiza en paralelo cuando sea posible. El resultado debe ser una inicio mucho más rápida para sistemas complejos, que incluye su sistema de escritorio.

Systemd: padre de todos los demás procesos

Un sistema de Linux y cualquier otro *nix siempre inicia un proceso que sea el padre de todos los demás procesos. Cuando usa SystemD, ese proceso es Systemd, el proceso siempre se llama 'init' independientemente del sistema init. Una vez que Systemd se esté ejecutando, iniciará los demonios que ejecutan los subsistemas. Los demonios controlan los recursos que tiene 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 de snap.

¿Cómo se controla lo que comienza??

En primer lugar, el sistema inicial más temprano tenía niveles que muchos lectores reconocerán. RunLevel 1 fue modo de usuario único, 2 modo de usuarios múltiples sin redes y 3-5 usuarios múltiples y gráficos. Configurar el RunLevel en 0 significaba detenerse y 6 significaba reiniciar. Los desarrolladores de Systemd encontraron que estos niveles no estaban claros, por lo que lo cambiaron, por lo que se llaman objetivos. Los objetivos no son exactamente los mismos, pero tiene una función similar. Cuando se está ejecutando un objetivo específico, se está ejecutando una colección específica de unidades. Más en unidades más tarde.

Establecer el "RunLevel", llamado objetivo.

Puede cambiar el objetivo mientras se ejecuta, por ejemplo, puede usar un terminal para establecer su objetivo en múltiples usuarios. Esto detendría su GUI, X o Wayland, pero les dejaría iniciar sesión con una consola de texto. Use el siguiente comando.

$ systemctl aislado multiuser.objetivo

O, si desea iniciar su escritorio, use el siguiente comando en su lugar.

$ systemctl aislado gráfico.objetivo

Lo que realmente le interesa es cómo comenzar el nivel correcto, puede averiguar lo que tiene ahora mismo de esta manera.

$ systemctl get-default

Para cambiar el establecimiento predeterminado.

$ systemctl set-default gráfico.objetivo

Este comando en realidad hace que muchas unidades y servicios comiencen a medida que arranca su computadora. Aunque es posible que desee comenzar o detener un solo servicio.

Comenzar, 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. En contraste con los objetivos, las unidades son especiales para un servicio en particular. Para detener un servicio, utiliza 'SystemCtl Stop', puede usar 'Inicio' y 'Reiniciar'. Para hacer que un servicio comience en el arranque, utiliza 'Habilitar', para detenerlo 'deshabilitar'. Elija un servicio y comience y deténgalo mientras se ejecuta.

$ SystemCTL Status Cups.servicio

Este 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 comando a continuación.

$ SystemCtl Stop Cups.servicio

El servicio ahora se detiene para su sesión actual. Para cambiarlo para no comenzar en el siguiente arranque, use la desactivación.

$ systemctl desactivar tazas.servicio

Observe que solo puede deshabilitar el servicio, esto no tendría ningún efecto en su situación actual. El servicio sigue funcionando. En el siguiente arranque, sin embargo, no iniciará el servicio.

Systemd también controla los montajes, dispositivos, enchufes y más. Las unidades son más bajas y más fáciles de entender, si ha tratado con un Linux antes. También puede configurarlos usted mismo, pero el mayor efecto en el arranque es controlar los servicios.

¿Cómo se agrega sus propios scripts??

Puede agregar sus propios scripts con bastante facilidad, los detalles que son interesantes a saber es cómo hace que su script o servicio dependa de los demás. Esto se demuestra perfectamente en este archivo de servicio WiFi-Resume.

[Unidad]
Descripción = reiniciar NetworkManager en el currículum
Después = suspender.objetivo
Después = hibernar.objetivo
Después = sueño híbrido.objetivo
[Servicio]
Tipo = onehot
Execstart =/bin/systemctl reiniciar la red-administrador.servicio
[Instalar]
Wantedby = suspender.objetivo
Wantedby = Hibernate.objetivo
Wantedby = Hybrid-Sleep.objetivo

Este código crea un servicio que ocurre una vez (OneShot) después de los tres objetivos mencionados en el código. El código que se ejecuta es en este caso un comando único. Puede apuntar a Exectar a un script de su elección.

Conclusión

Cambio de su sistema, especialmente cómo se inicia, puede hacerlo usted mismo, pero tenga cuidado con que esto tenga muchas consecuencias para cada servicio, así que asegúrese de que su código sea estable y rápido de ejecutar.