¿Cómo administrar los servicios de Systemd con Systemctl?

El administrador de sistema y servicio predeterminado para la mayoría de las distribuciones de Linux ahora es systemd.


El proceso systemd reemplaza el inicio SysV. Se ejecuta como el primer proceso después del arranque del kernel y es responsable de llevar el host de Linux al estado en el que se puede usar. Es responsable de iniciar y administrar los servicios, montar los sistemas de archivos, administrar el hardware, generar la solicitud de inicio de sesión y mucho más..

Un beneficio clave sobre SysV es que systemd inicia tantos servicios como sea posible en paralelo, acelerando así el proceso de inicio, y eso abre la pantalla de inicio de sesión más rápido.

Unidades

Los elementos que gestiona systemd se denominan unidades. Los archivos de la unidad se encuentran en / lib / systemd / system.

Unidades de servicio

Para la gestión de servicios, las unidades de destino son unidades de servicio, que tienen archivos de unidad con un sufijo de .Servicio.

Administrar servicios systemd

El comando para administrar unidades systemd es systemctl.

Iniciar y detener servicios

Para iniciar un servicio systemd, use el comando systemctl start:

$ sudo systemctl start name.service

Puede dejar el sufijo .service. Por ejemplo, para iniciar el servidor apache en Ubuntu:

$ sudo systemctl start apache2

Para detener un servicio en ejecución:

$ sudo systemctl stop name.service

Entonces, para detener el servidor apache en Ubuntu:

$ sudo systemctl stop apache2

Servicios de reinicio y recarga

Para reiniciar un servicio en ejecución, use el comando de reinicio:

$ sudo systemctl reiniciar nombre.servicio

Y donde se requiere el único archivo de configuración de recarga

$ sudo systemctl reload name.service

Habilitar y deshabilitar servicios

Si desea que un servicio se inicie automáticamente al iniciar el sistema, use el comando enable:

$ sudo systemctl enable name.service

Para deshabilitar el inicio de un servicio al iniciar el sistema:

$ sudo systemctl deshabilitar nombre.servicio

Deshabilitar no detiene un servicio en ejecución.

Ver el estado del servicio

Para ver información sobre un servicio:

$ sudo systemctl status name.service

Esto le mostrará el estado del servicio y las primeras líneas del archivo de registro. Entonces, mientras el servicio se está ejecutando, la salida de

sudo systemctl status apache2

es

apache2.service – El servidor HTTP Apache
Cargado: cargado (/lib/systemd/system/apache2.service; activado; proveedor preestablecido: activado)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Activa: activa (en ejecución) desde el martes 2020-05-19 22:11:36 UTC; Hace 4 días
Proceso: 116002 ExecReload = / usr / sbin / apachectl graceful (código = salido, estado = 0 / ÉXITO)
PID principal: 104165 (apache2)
Tareas: 55 (límite: 1024)
CGroup: /system.slice/apache2.service
4104165 / usr / sbin / apache2 -k start
6116006 / usr / sbin / apache2 -k start
6116007 / usr / sbin / apache2 -k start

19 de mayo 22:11:36 ubuntu18 systemd [1]: Inicio del servidor HTTP Apache…
19 de mayo 22:11:36 ubuntu18 systemd [1]: inició el servidor HTTP Apache.
21 de mayo 06:25:01 ubuntu18 systemd [1]: Recargando el Servidor Apache HTTP.
21 de mayo 06:25:01 ubuntu18 systemd [1]: recarga el servidor HTTP Apache.
22 de mayo 06:25:01 ubuntu18 systemd [1]: Recargando el Servidor Apache HTTP.

Para verificar si un servicio está activo:

$ sudo systemctl is-active name.service

Entonces, mientras se ejecuta el servicio apache2, la salida del comando systemctl is-active es:

$ sudo systemctl is-active apache2
activo

Para verificar si un servicio está habilitado:

$ sudo systemctl está habilitado name.service.

Visualización del estado del sistema

Todos los comandos que ha visto hasta ahora se utilizan para administrar un solo servicio. Cuando desee una descripción general del estado del sistema, use el siguiente conjunto de comandos:

Para ver todos los tipos de unidades

$ sudo systemctl -t ayuda
Tipos de unidades disponibles:
Servicio
enchufe
objetivo
dispositivo
montar
montaje automático
intercambiar
Temporizador
camino
rebanada
alcance

Para enumerar todas las unidades instaladas, use list-unit-files

$ sudo systemctl list-unit-files
ESTADO UNIDAD DE ARCHIVO
proc-sys-fs-binfmt_misc.automount estática
-.montaje generado
boot-efi.mount generado
dev-hugepages.mount static
dev-mqueue.mount static
mnt.mount generado
proc-sys-fs-binfmt_misc.mount static
sys-fs-fuse-connections.mount static
sys-kernel-config.mount static
sys-kernel-debug.mount static
acpid.path habilitado
apport-autoreport.path habilitado
systemd-ask-password-console.path static
systemd-ask-password-plymouth.path estática
systemd-ask-password-wall.path estático
session-161.scope transitoria
cuentas-daemon.service habilitado

La salida tiene solo dos columnas Unidad de archivo y Estado. El estado generalmente estará habilitado, deshabilitado, estático o enmascarado.

  • Estático: Esto significa que la unidad no se puede habilitar, realiza una acción única o depende de otra unidad y no se puede ejecutar sola.
  • Enmascarado: Una unidad listada como enmascarada significa que es completamente inestable, ya que está vinculada a / dev / null. Esto se llama enmascarar la unidad. Esto evita que el servicio se inicie, manual o automáticamente..

Listar todos los servicios instalados

El comando systemctl list-unit-files con -t o –type service filter muestra solo el estado de los servicios instalados.

$ sudo systemctl list-unit-files -t servicio

ESTADO UNIDAD DE ARCHIVO
cuentas-daemon.service habilitado
acpid.service deshabilitado
apache-htcacheclean.service deshabilitado
[correo electrónico protegido] discapacitado
Apache2.service habilitado
[correo electrónico protegido] discapacitado
apparmor.service habilitado
apport-autoreport.service static
[correo electrónico protegido] estático
apport.service generado
apt-daily-upgrade.service static
apt-daily.service static
atd.service habilitado
[correo electrónico protegido] habilitado
blk-Availability.service habilitado
bootlogd.service enmascarado
bootlogs.service enmascarado

Para ver todas las unidades de servicio activas, use list-units con -t service filter

$ sudo systemctl list-units -t service

UNIDAD DE CARGA SUB DESCRIPCIÓN ACTIVA
cuentas-daemon.service cargado activo en ejecución Servicio de Cuentas
Apache2.service cargado activo en ejecución El servidor HTTP Apache
apparmor.service cargado activo inicializado AppArmor inicializado
apport.service cargado activo LSB salido: generación automática de informes de fallos
atd.service cargado activo en ejecución Programador de ejecución diferida
blk-Availability.service cargado activo salido Disponibilidad de dispositivos de bloque
cloud-config.service cargado activo salido Aplicar la configuración especificada en cloud-con
cloud-final.service cargado activo salido Ejecutar usuario de nube / scripts finales
cloud-init-local.service cargado activo salido Trabajo inicial en la nube (init-network)
cloud-init.service cargado activo salido Trabajo inicial de cloud-init (servicio de metadatos
console-setup.service cargado activo salido Establecer fuente de consola y mapa de teclas
cron.service cargado activo en ejecución Procesamiento de programa en segundo plano regular dae

La salida tiene las siguientes columnas:

  • UNIDAD: El nombre de la unidad de servicio systemd
  • CARGA: Muestra si la definición de la unidad se leyó y cargó correctamente
  • ACTIVO: Describe si la unidad está activa.
  • SUB: Estado de activación de bajo nivel de la unidad, que proporciona información más detallada sobre la unidad. Esto variará según el tipo de unidad.
  • DESCRIPCIÓN: La descripción de la unidad de servicio.

Conclusión

Espero que esto le dé una idea sobre el uso de systemctl para administrar servicios en Linux. Si está interesado en aprender más, puede consultar esto Curso de dominio de Linux.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map