WindowsMacSoftwareConfiguraciónSeguridadProductividadLinuxAndroidRendimientoConfiguraciónApple Todo

Cómo gestionar servicios con systemd en Fedora

Editado 4 hace meses por ExtremeHow Equipo Editorial

FedoraSystemdServiciosGestiónLínea de comandosTerminalSoftwareAdministración de sistemasConfiguraciónComputadoras

Cómo gestionar servicios con systemd en Fedora

Traducción actualizada 4 hace meses

La gestión de servicios en las distribuciones modernas de Linux es importante para los administradores de sistemas y cualquier usuario que necesite mantener el control sobre los servicios que se ejecutan en una máquina. Fedora, una popular distribución de Linux, utiliza systemd como su gestor de sistemas y servicios. Este artículo explica cómo los servicios pueden ser gestionados eficazmente usando systemd en Fedora. Cubriremos temas como iniciar, detener, habilitar, deshabilitar y verificar el estado de los servicios, así como la creación de unidades de servicio personalizadas. Ya sea que seas nuevo en Fedora o en sistemas Linux en general, o que seas un usuario experimentado que necesite un repaso, esta guía completa es útil para todos.

Introducción a systemd

Systemd es una herramienta que proporciona un gestor de sistemas y servicios diseñado para reemplazar a los tradicionales System V (sysv) de Unix y BSD init. Proporciona inicio bajo demanda de demonios, monitoreo de servicios, soporte de instantáneas, y más. Nicer depende de los servicios. El núcleo de systemd se gestiona a través del comando systemctl, que es responsable de verificar y controlar el estado del gestor de sistemas y servicios systemd.

Componentes de systemd

Antes de sumergirnos en el uso práctico de systemd, es útil entender sus componentes principales:

Comprendiendo las unidades de servicio

Las unidades de servicio son el tipo de unidad más común en systemd. Estas unidades contienen configuraciones que definen qué es el servicio, cómo debe iniciarse o detenerse, de qué depende y otros comportamientos específicos.

Un archivo de unidad de servicio generalmente se encuentra en /etc/systemd/system o /usr/lib/systemd/system y tiene la siguiente sintaxis:

[Unit]
Description=My Sample Service
[Service]
ExecStart=/usr/bin/my-service
ExecStop=/usr/bin/my-service-stop
Restart=on-failure
[Install]
WantedBy=multi-user.target

Cada archivo de servicio generalmente contiene las siguientes secciones:

Gestión de servicios con systemctl

El comando systemctl se utiliza para monitorear y controlar systemd. A continuación se presentan tareas comunes y cómo puedes realizarlas usando systemctl:

Verificación del estado del servicio

Para verificar el estado de un servicio, utiliza:

systemctl status my-service.service

Este comando proporcionará información sobre el estado del servicio, registros recientes y más.

Iniciando el servicio

Puedes usar lo siguiente para iniciar el servicio:

systemctl start my-service.service

Iniciar un servicio manualmente no significa que se iniciará automáticamente al arrancar.

Deteniendo el servicio

El siguiente comando se utiliza para detener un servicio:

systemctl stop my-service.service

Este comando detiene el servicio hasta que se reinicie manualmente o se reinicie el sistema.

Reiniciando el servicio

Para reiniciar un servicio, utiliza:

systemctl restart my-service.service

Esta operación detiene el servicio (si está funcionando) y luego lo inicia nuevamente.

Habilitación y deshabilitación de servicios

Para iniciar un servicio automáticamente al arrancar el sistema, habilítalo de la siguiente manera:

systemctl enable my-service.service

Por el contrario, para deshabilitar un servicio para que no se inicie automáticamente, utiliza:

systemctl disable my-service.service

Habilitar un servicio crea un enlace simbólico desde el archivo de unidad del servicio hasta la configuración de arranque del sistema.

Uso de daemon reload

Si modificas un archivo de unidad o configuración en el árbol de systemd, a menudo es necesario recargar systemd:

systemctl daemon-reload

Este comando informa a systemd que escanee para encontrar archivos de unidad nuevos o modificados.

Creación de unidades de servicio personalizadas

Crear un servicio personalizado te permite ejecutar tus propias aplicaciones como servicios gestionados. Aquí hay una forma sencilla de crearlo paso a paso:

Paso 1: Crear el archivo de unidad

Abre un editor de texto y crea un nuevo archivo de unidad de servicio en el directorio /etc/systemd/system/:

sudo nano /etc/systemd/system/my-custom-service.service

Rellénalo con la definición de servicio requerida:

[Unit]
Description=Custom Service Example
[Service]
ExecStart=/usr/bin/custom-script.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target

Paso 2: Establecer permisos

Asegúrate de que el script o programa que se llame en ExecStart tenga los permisos adecuados:

chmod +x /usr/bin/custom-script.sh

Paso 3: Recargar systemd

Después de crear el nuevo archivo de unidad, recarga systemd:

systemctl daemon-reload

Paso 4: Iniciar y habilitar el servicio

Ahora inicia y habilita tu servicio personalizado:

systemctl start my-custom-service.service
systemctl enable my-custom-service.service

Tu servicio personalizado ahora debería gestionarse de la misma manera que cualquier otro servicio del sistema.

Uso de objetivos systemd

Los puntos de destino son configuraciones que permiten abstraer el concepto de niveles de ejecución en los sistemas init tradicionales. Ayudan a gestionar las dependencias entre servicios y otras unidades, proporcionando una forma de agrupar múltiples servicios y unidades juntos.

Listado de objetivos disponibles

Para averiguar los objetivos disponibles en tu sistema, utiliza:

systemctl list-units --type=target

Cambio de nivel de ejecución

Para cambiar el objetivo o nivel de ejecución, utiliza:

systemctl isolate multi-user.target

Este comando es equivalente a cambiar el nivel de ejecución al modo multiusuario.

Comprendiendo los registros con journalctl

Systemd viene con una herramienta de registro del sistema integrada conocida como journalctl. Esta herramienta de gestión de registros consolida los registros de todos los servicios gestionados por systemd en un repositorio central.

Visualización del registro

Para ver los registros de un servicio específico, utiliza:

journalctl -u my-service.service

Registro en tiempo real

Al monitorear registros en tiempo real a medida que se generan, usa la siguiente bandera:

journalctl -u my-service.service -f

Resolución de problemas comunes

A veces puede haber problemas para gestionar los servicios sin problemas. Saber cómo solucionar problemas puede ser invaluable:

Conclusión

La gestión eficiente de servicios es fundamental para la administración de sistemas en Fedora y otras distribuciones de Linux que usan systemd. Esta guía te ha mostrado cómo gestionar varios aspectos de los servicios utilizando systemctl, desde realizar tareas básicas como iniciar y detener servicios hasta crear unidades de servicio personalizadas y manejar registros con journalctl. Con estas habilidades, puedes asegurarte de que tus sistemas funcionen sin problemas y de manera eficiente, automatizar tareas y gestionar servicios del sistema efectivamente.

Recuerda que en el mundo de Linux, cualquier acción que realices en un sistema puede requerir privilegios de root. Asegúrate de tener los permisos adecuados y siempre haz copias de seguridad de archivos importantes antes de hacer cambios en configuraciones críticas del sistema. Entender systemd y las herramientas que proporciona es invaluable para la gestión efectiva de servicios en Linux.

Si encuentras algo incorrecto en el contenido del artículo, puedes


Comentarios