Archivo de servicio Systemd

Archivo De Servicio Systemd



En Linux, la salida de estado de systemctl muestra que el servicio se carga a través de un archivo llamado archivo de servicio. Se puede acceder a estos archivos en el /lib/systemd/sistema o /etc/systemd/sistema directorios.

Los archivos de servicio tienen .servicio extensiones y contienen las instrucciones requeridas por sistemad para gestionar un servicio.







El sistemad El sistema init gestiona la inicialización del sistema utilizando el Unidad . Una unidad es un objeto que realiza una tarea o acción, como gestionar un servicio, lo que implica controlarlo y monitorearlo. Estas unidades son esencialmente archivos llamados archivos de servicio que incluyen dependencias y comandos de unidades. Estos archivos son cruciales para controlar eficientemente los procesos en segundo plano y administrar los recursos.



En la guía, exploraré el archivo de servicio systemd, su estructura y las principales directivas que controlan el servicio.



Cuando se trabaja con systemd, los términos archivo de servicio systemd y archivo de unidad systemd A menudo se usan indistintamente porque técnicamente se refieren a lo mismo.





¿Qué es el archivo de servicio Systemd?

En Linux, systemd administra los servicios utilizando los archivos de servicio que contienen las instrucciones de configuración para que systemd pueda comprenderlos y ejecutarlos.

Para enumerar las unidades, use systemctl con el –lista-unidades dominio.



sistemactl --lista-unidades

Para leer el archivo de servicio de cualquier servicio, utilice el gato comando con la ruta del archivo.

gato [ / ruta-archivo-servicio ]

Por ejemplo, para ver el archivo de servicio de servicio ssh Utilice el comando dado.

gato / biblioteca / sistemad / sistema / servicio ssh

Anatomía del archivo de servicio Systemd

Generalmente, los archivos de la unidad de servicio systemd contienen tres secciones.

  • Unidad
  • Servicio
  • Instalar

Un archivo de unidad específico de servicio tendrá una sección específica llamada Servicio sección.

Tenga en cuenta que el servicio es sólo un tipo de unidad. Una unidad puede tener diferentes tipos, como socket, dispositivo, montaje, montaje automático, intercambio, objetivo, temporizador, corte y alcance. Estas secciones se colocan entre las secciones Unidad e Instalación. La extensión del archivo también se reemplazará con el tipo de unidad respectivo; por ejemplo, un tipo de unidad de enchufe tendrá un .enchufe extensión de archivo.

Nota: En esta guía, me centraré en el tipo de unidad de servicio debido a su amplio uso por parte de administradores y desarrolladores.

Estas secciones están entre corchetes ([]). Cada sección contiene un conjunto de instrucciones relevantes. A continuación se proporciona una estructura general de un archivo de servicio.

[ Unidad ]

Directiva1 =Instrucción 1

Directiva2 =Instrucción 2

[ Servicio ]

Directiva1 =Instrucción 1

Directiva2 =Instrucción 2

[ Instalar ]

Directiva1 =Instrucción 1

Directiva2 =Instrucción 2

El orden de las secciones se puede cambiar; sin embargo, generalmente se sigue el orden mencionado anteriormente.

Sección [Unidad]

La sección de unidad contiene la descripción de la unidad y las dependencias de la unidad. Esta sección, por convención, se coloca en la parte superior del archivo de servicio. Las directivas más utilizadas se enumeran a continuación:

Directiva Descripción
Descripción Esta directiva se utiliza para mencionar el nombre del servicio. La extensión de la descripción no debe exceder los 80 caracteres.
Documentación Esta directiva contiene la página de manual o URL del servicio.
Requiere Esta directiva se utiliza para mencionar la dependencia del servicio actual. Si no se realiza la activación de este servicio de dependencia, no se iniciará el servicio actual.
Quiere Esta directiva se utiliza para mencionar la dependencia del servicio actual. Sin embargo, no es necesario activar este servicio de dependencia para ejecutar el servicio actual.
Antes Una vez activada la unidad actual, se iniciará el servicio mencionado en esta directiva.
Después Antes de que se haya activado la unidad actual, se iniciará el servicio mencionado en esta directiva.
Se une a Esta directiva vincula el servicio actual al servicio mencionado. Si el servicio vinculado se reinicia, los servicios actuales también se reiniciarán.

Aparte de estas directivas, hay dos directivas más; Condición y Afirmar. Muchos servicios requieren condiciones específicas del sistema para ejecutarse correctamente y estas directivas se utilizan para mencionar las condiciones.

Sección [Instalar]

Esta sección no es obligatoria y solo es necesaria cuando un servicio requiere activación o desactivación al arrancar. Además, también cabe mencionar el servicio de alias. A continuación se enumeran las directivas utilizadas habitualmente para la sección Instalación:

Directiva Descripción
Buscado por Esta directiva establece el nivel de ejecución * objetivo del servicio. Si se fija un objetivo en multi-user.target entonces el servicio se habilitará en este nivel de ejecución.
Requerido por Esta directiva se parece a WantedBy; sin embargo, incluso sin la dependencia mencionada en la directiva, el servicio estará habilitado.
Alias Esta directiva se utiliza para habilitar el servicio con otro nombre. Se crea un enlace simbólico con este nombre cuando el servicio está habilitado.

Mayormente, el multi-user.target se usa como Buscado por parámetro. Pero, ¿qué es el objetivo multiusuario?

El objetivo multiusuario representa el estado del sistema listo para aceptar sesiones de múltiples usuarios no gráficas. Es el estado antes de lanzar la GUI.

Hay diferentes niveles de ejecución del sistema, aprendamos sobre la función de estos niveles de ejecución.

En systemd, los servicios se agrupan según los niveles de ejecución, que se denominan objetivos . Cada nivel de ejecución tiene un archivo con .objetivo extensión en el /etc/systemd/sistema directorio. Un servicio se ejecutará según el estado del nivel de ejecución.

Nivel de ejecución Objetivos Estado Archivos
0 apagado Apagar y apagar poweroff.target
1 rescate Inicia el shell de rescate. rescue.target
2,3,4 multi usuario Inicia un shell multiusuario sin GUI multi-user.target
5 gráfico Establece un shell GUI multiusuario graphical.target
6 reiniciar Apagar y reiniciar reboot.target

Sección [Servicio]

Esta sección comprende los ajustes de configuración del servicio. La configuración principal de esta sección es definir el tipo y los comandos que se ejecutarán al inicio del servicio. Tipo y Inicio ejecutivo son las principales directivas utilizadas para configurar un servicio.

En la siguiente tabla se enumeran diferentes tipos de servicio.

Tipo de servicio Descripción
simple Es el tipo predeterminado cuando no se menciona el tipo o nombre de bus y solo se menciona ExecStart. El systemd ejecuta primero el proceso principal y luego las unidades de seguimiento.
bifurcando Este tipo se utiliza para mantener el servicio en ejecución incluso si el servicio principal está cerrado. Bifurca un proceso hijo después del cierre del proceso padre.
un trago El systemd ejecuta el proceso principal primero y cuando el proceso principal sale, se iniciarán las unidades de seguimiento.
dbus El servicio con dbus se utiliza para comunicarse con otro proceso en el bus. Si se menciona el nombre del bus, el proceso se activará después de adquirir el nombre del bus.
notificar El servicio avisará al iniciar el proceso. El sistema procederá a las unidades de seguimiento una vez emitida la notificación.
inactivo Mantiene el servicio hasta que se envían todos los trabajos activos; Principalmente útil para mejorar la salida de la consola.

Las directivas comúnmente utilizadas en la sección Servicio se mencionan a continuación:

Directiva Descripción
Inicio ejecutivo Mantiene la ruta completa del comando a ejecutar para comenzar el proceso.
EjecutivoInicioPre Mantiene los comandos que deben ejecutarse antes de que comience el proceso principal.
ExecStartPost Mantiene los comandos que deben ejecutarse después de que comienza el proceso principal.
recarga ejecutiva Mantiene el comando para recargar la configuración del servicio.
Reanudar Para reiniciar automáticamente el servicio en circunstancias como en caso de error, en caso de éxito, en caso de anomalía, en caso de aborto y en estado de vigilancia.
ReiniciarSec Para mantener el número de segundos después de los cuales el servicio se reiniciará automáticamente.

El Inicio ejecutivo es una de las directivas cruciales utilizadas en la sección de Servicio. Contiene el ruta completa del ejecutable que el servicio se ejecutará al invocarlo.

Conclusión

Un archivo de servicio systemd es un archivo de configuración que está estructurado con directivas y comandos para que systemd pueda administrarlos. Estos archivos contienen instrucciones que indican cómo systemd gestiona un servicio. En esta guía, cubrí cómo acceder a un archivo de servicio systemd, sus secciones y directivas que administran los servicios. Para obtener más información sobre las instrucciones del archivo de servicio, lea la guía de documentación oficial que se encuentra aquí .