Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 10964|Respuesta: 8

[Linux] Linux systemd service manager explicado en detalle

[Copiar enlace]
Publicado en 28/11/2021 10:02:32 | | | |
systemd es un conjunto de bloques básicos para sistemas Linux. Proporciona un gestor de sistemas y servicios que ejecuta y arranca el resto del sistema como PID 1.

systemd ofrece capacidades agresivas de paralelización, utiliza sockets y activación de D-Bus para iniciar servicios, proporciona inicio bajo demanda de daemons, utiliza grupos de control Linux para rastrear procesos, mantiene montajes y puntos de auto-montaje, e implementa una lógica de control de servicios basada en dependencias de transacciones bien diseñada. systemd soporta scripts de init de SysV y LSB y puede reemplazar sysvinit.

Otras secciones incluyen daemons de registro, utilidades para controlar configuraciones básicas del sistema como nombres de host, fechas, ubicaciones, mantener una lista de usuarios iniciados sesión y contenedores y máquinas virtuales en ejecución, cuentas del sistema, directorios y configuraciones de demonios para redes simples, sincronización de tiempo de red, reenvío de registros y resolución de nombres.

El archivo de configuración systemd existe en las siguientes tres carpetas:         

/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。

/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。

/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。
Revisión:

Linux analiza la salida de registro del servicio Systemd
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Añadir un nodo Linux y registrarlo como un servicio
https://www.itsvse.com/thread-10120-1-1.html

CentOS 7 instala el exportador de nodos
https://www.itsvse.com/thread-9969-1-1.html

Perfil de la unidad

Un archivo unitario en systemd es un archivo que codifica información sobre las distintas unidades que systemd puede gestionar, incluyendo servicios, sockets, dispositivos, etc. Esta guía se centra en los servicios, en cuyo caso el archivo unitario con el que trabajamos es el archivo .service. El archivo de configuración del dispositivo varnish.service contiene información sobre cómo systemd debe ejecutar, monitorizar y gestionar el demonio del barnish.

El bloque [Unidad] suele ser el primer bloque del archivo de configuración y se utiliza para definir los metadatos de la Unidad y cómo se relacionan con otras Unidades. Sus principales campos son los siguientes.

  • Descripción: Una breve descripción
  • Documentación: La dirección del documento
  • Requiere: Otras unidades de las que depende la unidad actual y, si no están funcionando, la unidad actual no arrancará
  • Deseo: Otras unidades que trabajan con la unidad actual, si no están en funcionamiento, la unidad actual no fallará al arrancar
  • BindsTo: Similar a Requires, especifica una unidad que hace que la unidad actual deje de funcionar si se sale
  • Antes: Si la unidad especificada en este campo también va a iniciarse, debe iniciarse después de la unidad actual
  • Después: Si la unidad especificada en este campo también va a iniciarse, debe iniciarse antes que la unidad actual
  • Conflictos: La unidad aquí especificada no puede funcionar al mismo tiempo que la unidad actual
  • Condición... : Las condiciones que deben cumplirse para que la unidad actual funcione, de lo contrario no funcionará
  • Afirmar... : Las condiciones que deben cumplirse para que la unidad actual funcione, de lo contrario se informará del fallo de arranque

[Instalar] suele ser el último bloque del archivo de configuración que define cómo arrancar y si arrancar o no. Sus principales campos son los siguientes.

  • WantedBy: Su valor es uno o más Objetivos, y cuando la Unidad actual está activa (habilitada), el enlace simbólico se coloca en un subdirectorio bajo el directorio /etc/systemd/system con el sufijo Target name + .wants
  • RequiredBy: Su valor es uno o más Objetivos, y cuando la Unidad actual está activa, el enlace simbólico se colocará en un subdirectorio bajo el directorio /etc/systemd/system con el nombre de destino + el sufijo .required
  • Alias: El alias que la Unidad actual puede usar para empezar
  • Además: Cuando se activa la unidad actual, otras unidades se activan al mismo tiempo

El bloque [Servicio] se utiliza para configurar el Servicio, y solo las unidades del tipo Servicio tienen este bloque. Sus principales campos son los siguientes.

  • Tipo: Define el comportamiento del proceso en el inicio. Tiene los siguientes valores.
  • Type=simple: El valor por defecto, ejecutar el comando especificado por ExecStart para iniciar el proceso principal
  • type=forking: El fork crea un proceso hijo a partir del proceso padre, que saldrá inmediatamente después de la creación
  • Type=oneshot: Un proceso único, Systemd esperará a que el servicio actual salga antes de continuar ejecutándolo
  • Tipo=dbus: El servicio actual comienza a través de D-Bus
  • type=notify: Cuando se inicie el servicio actual, Systemd será notificado y continuará la ejecución
  • type=idle: El servicio actual solo se ejecutará si se ejecutan otras tareas
  • ExecStart: El comando para iniciar el servicio actual
  • ExecStartPre: El comando se ejecutó antes de iniciar el servicio actual
  • ExecStartPost: El comando se ejecutó tras iniciar el servicio actual
  • ExecReload: El comando que se ejecuta cuando se reinicia el servicio actual
  • ExecStop: El comando que se ejecuta cuando se detiene el servicio actual
  • ExecStopPost: Detener el comando que se ejecuta cuando se sirve
  • RestartSec: El número de segundos entre el servicio automático reinicia el servicio actual
  • Reiniciar: Define las circunstancias bajo las cuales Systemd reiniciará automáticamente el servicio actual, con valores posibles como siempre, on-éxito, on-fallo, on-anormal, on-abortar, on-watchdog
  • TimeoutSec: Define el número de segundos que Systemd espera antes de detener el servicio actual
  • Entorno: Especificar la variable de entorno

Herramienta de gestión de Systemctl

La gestión de programas en CentOS la realiza básicamente la herramienta systemctl.

Servicio de Startup:

systemctl inicio nombre.servicio

Suspender el servicio:

systemctl nombre de parada.servicio

Reiniciar el servicio:

systemctl reinicio name.service

Ver estado:

systemctl nombre de estado.servicio

Reinicio condicional:

Si el servicio se inició antes, se reiniciará, y si no se inicia, no se operará

systemctl try-restart name.service

Recargar o reiniciar:

Recarga primero y, si la recarga no tiene éxito, reinicia

systemctl reload-or-restart name.service

Recarga o reinicio condicional:

systemctl reload-or-try-restart name.service

Establece si el servicio puede ser configurado por el usuario para iniciar el estado

systemctl unmask name.service

Está prohibido el nombre de la máscara de sistemaCTL.

Consulta el estado actual de activación del servicio:

El valor de retorno de estado del comando servicio ha iniciado es 0 El valor de retorno de estado del comando que no se ha iniciado es distinto de 0

systemctl is-active name.service

Consulta todos los servicios que se han activado:

-t Especifica el tipo de unidad que se exhibe.

--todas muestran una lista de información más detallada.

-un equivalente --todos

Unidades de lista systemctl

Servicio de List-Unidades SystemCTL -T

SystemCTL lista-unidades -t servicio -a

Ver todos los servicios:

SystemCTL Lista-unidades -a

Ver todos los estados del servicio:

List-unidades-archivos systemctl

-a 、--all : Ver el estado de todos los servicios

-t 、--tipo: Especifica el tipo de unidad que se va a ver

loaded: El archivo de configuración ha sido cargado, cargado en memoria

activas (en marcha): Ejecuciones que se procesan continuamente una o más veces

activo(exited): La configuración única se completa con éxito

activo(esperando): Corriendo, esperando un evento

inactive:不运行

enabled:开机启动

disabled:开机不启动

static:开机不启动,但可被另一个启用的服务激活

Se utiliza para listar en qué niveles operativos está habilitado y deshabilitado el servicio

ls /etc/systemd/system/*.wants/sshd.service

SystemCTL list-unit-files --type target --all

Para configurar el servicio para que no se inicie:

SystemCTL desactivar unidad de nombre de servicio

Comprueba si el servicio está arrancado y iniciado:

SystemCTL is-activato name.service

Mira las dependencias de servicios:

SystemCTL list-dependencies name.service
SystemCTL list-depebdencies

Servicio de carga pesada:

systemctl daemon-reload

Mata el proceso:

Nombre del proceso de eliminación de systemctl

Recursos:

El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.





Anterior:Linux prueba la conectividad LDAP usando el comando Curl
Próximo:Problema con permisos de archivo de subida VSFTP
 Propietario| Publicado en 11/12/2021 17:35:26 |
[Unidad]Un bloque suele ser el primer bloque de un archivo de configuración que define los metadatos de una Unidad y cómo se relacionan con otras Unidades. Sus principales campos son los siguientes.

Descripción: Una breve descripción
Documentación: La dirección del documento
Requiere: Otras unidades de las que depende la unidad actual y, si no están funcionando, la unidad actual no arrancará
Deseo: Otras unidades que trabajan con la unidad actual, si no están en funcionamiento, la unidad actual no fallará al arrancar
BindsTo: Similar a Requires, especifica una unidad que hace que la unidad actual deje de funcionar si se sale
Antes: Si la unidad especificada en este campo también va a iniciarse, debe iniciarse después de la unidad actual
Después: Si la unidad especificada en este campo también va a iniciarse, debe iniciarse antes que la unidad actual
Conflictos: La unidad aquí especificada no puede funcionar al mismo tiempo que la unidad actual
Condición... : Las condiciones que deben cumplirse para que la unidad actual funcione, de lo contrario no funcionará
Afirmar... : Las condiciones que deben cumplirse para que la unidad actual funcione, de lo contrario se informará del fallo de arranque
[Instalar]Normalmente es el último bloque del archivo de configuración el que define cómo arrancar y si arrancar o no. Sus principales campos son los siguientes.

WantedBy: Su valor es uno o más Objetivos, y cuando la Unidad actual está activa (habilitada), el enlace simbólico se coloca en un subdirectorio bajo el directorio /etc/systemd/system con el sufijo Target name + .wants
RequiredBy: Su valor es uno o más Objetivos, y cuando la Unidad actual está activa, el enlace simbólico se colocará en un subdirectorio bajo el directorio /etc/systemd/system con el nombre de destino + el sufijo .required
Alias: El alias que la Unidad actual puede usar para empezar
Además: Cuando se activa la unidad actual, otras unidades se activan al mismo tiempo
[Servicio]Los bloques se utilizan para configurar servicios, y solo las unidades de tipo Servicio tienen este bloque. Sus principales campos son los siguientes.

Tipo: Define el comportamiento del proceso en el inicio. Tiene los siguientes valores.
Type=simple: El valor por defecto, ejecutar el comando especificado por ExecStart para iniciar el proceso principal
type=forking: El fork crea un proceso hijo a partir del proceso padre, que saldrá inmediatamente después de la creación
Type=oneshot: Un proceso único, Systemd esperará a que el servicio actual salga antes de continuar ejecutándolo
Tipo=dbus: El servicio actual comienza a través de D-Bus
type=notify: Cuando se inicie el servicio actual, Systemd será notificado y continuará la ejecución
type=idle: El servicio actual solo se ejecutará si se ejecutan otras tareas
ExecStart: El comando para iniciar el servicio actual
ExecStartPre: El comando se ejecutó antes de iniciar el servicio actual
ExecStartPost: El comando se ejecutó tras iniciar el servicio actual
ExecReload: El comando que se ejecuta cuando se reinicia el servicio actual
ExecStop: El comando que se ejecuta cuando se detiene el servicio actual
ExecStopPost: Detener el comando que se ejecuta cuando se sirve
RestartSec: El número de segundos entre el servicio automático reinicia el servicio actual
Reiniciar: Define las circunstancias bajo las cuales Systemd reiniciará automáticamente el servicio actual, con valores posibles como siempre, on-éxito, on-fallo, on-anormal, on-abortar, on-watchdog
TimeoutSec: Define el número de segundos que Systemd espera antes de detener el servicio actual
Entorno: Especificar la variable de entorno


 Propietario| Publicado en 11/12/2021 17:37:33 |
Tipo=bifurcación
SystemD piensa que el servicio se inicia con éxito cuando el proceso de servicio se bifurca y el proceso padre sale. Para daemons normales, a menos que estés seguro de que este método de inicio no satisface tus necesidades, puedes empezar con este tipo. Con este tipo de arranque, también debería especificarse PIDFile= para que systemd pueda rastrear el proceso principal del servicio

 Propietario| Publicado en 15/12/2021 16:55:14 |
Comando EnvironmentFile

EnvironmentFile es similar a la directiva Environment, pero lee variables de entorno de un archivo de texto. El archivo de texto debe contener asignaciones de variables separadas por saltos de línea

ejemplo

Puedes tomar este archivo de entorno y usar sus variables de la siguiente manera:



 Propietario| Publicado en 4/1/2022 15:56:55 |
 Propietario| Publicado en 5/1/2022 9:48:21 |
Ruta predeterminada del archivo de servicio de Docker: /usr/lib/systemd/system/docker.service

 Propietario| Publicado en 23/1/2022 22:57:56 |
Ver todos los estados del servicio



Consulta si un servicio está encendido, usando NFS como ejemplo:

 Propietario| Publicado en 25/2/2025 17:01:08 |
Servicios de inicio masivo que comienzan con ABC

 Propietario| Publicado en 11/4/2025 15:57:14 |
DefaultTimeoutStartSec= y DefaultTimeoutStopSec= por defecto son 90 segundos en System Manager y 90 segundos en User Manager.

El inicio de sesión del hipervínculo es visible.

Ver la configuración del servicio especificado con el siguiente comando:


Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com