Editado 4 hace meses por ExtremeHow Equipo Editorial
FedoraSystemdServiciosGestiónLínea de comandosTerminalSoftwareAdministración de sistemasConfiguraciónComputadoras
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.
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.
Antes de sumergirnos en el uso práctico de systemd, es útil entender sus componentes principales:
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:
El comando systemctl
se utiliza para monitorear y controlar systemd. A continuación se presentan tareas comunes y cómo puedes realizarlas usando systemctl
:
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.
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.
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.
Para reiniciar un servicio, utiliza:
systemctl restart my-service.service
Esta operación detiene el servicio (si está funcionando) y luego lo inicia nuevamente.
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.
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.
Crear un servicio personalizado te permite ejecutar tus propias aplicaciones como servicios gestionados. Aquí hay una forma sencilla de crearlo paso a paso:
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
Asegúrate de que el script o programa que se llame en ExecStart
tenga los permisos adecuados:
chmod +x /usr/bin/custom-script.sh
Después de crear el nuevo archivo de unidad, recarga systemd:
systemctl daemon-reload
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.
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.
Para averiguar los objetivos disponibles en tu sistema, utiliza:
systemctl list-units --type=target
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.
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.
Para ver los registros de un servicio específico, utiliza:
journalctl -u my-service.service
Al monitorear registros en tiempo real a medida que se generan, usa la siguiente bandera:
journalctl -u my-service.service -f
A veces puede haber problemas para gestionar los servicios sin problemas. Saber cómo solucionar problemas puede ser invaluable:
journalctl
para identificar mensajes específicos de error.systemctl list-dependencies
para ver las dependencias de un servicio.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