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.
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.