Editado 2 Hace unas semanas por ExtremeHow Equipo Editorial
InicializaciónServiciosLínea de comandosSystemdGestiónControlarScripts de inicioAdministrador del sistemaConfiguraciónMonitoreo
Traducción actualizada 6 hace días
En cualquier sistema basado en Linux, los servicios son un aspecto integral. Estos servicios son procesos en segundo plano que se ejecutan continuamente para contribuir a varias funcionalidades como redes, alojamiento de bases de datos, servidores web y mucho más. Gestionar estos servicios de manera eficiente es una parte importante de la administración del sistema. Esta guía explicará cómo gestionar servicios usando systemctl
, que es una utilidad de línea de comandos para monitorear y controlar el gestor de servicios y sistemas systemd.
Antes de adentrarnos en systemctl
, es importante entender qué es systemd. Systemd es un gestor de sistemas y servicios para Linux que proporciona capacidades de paralelización, utiliza activación por sockets y D-Bus para iniciar servicios, proporciona inicio de demonios bajo demanda, realiza un seguimiento de los procesos usando grupos de control de Linux y mantiene puntos de montaje y automontaje.
systemctl
es una utilidad de línea de comandos usada para gestionar systemd. Ofrece muchas opciones para controlar y gestionar servicios y unidades. Las unidades son recursos que systemd sabe gestionar; generalmente incluyen servicios, pero también otros tipos como puntos de montaje y sockets.
Antes de gestionar servicios, es bueno saber cómo listarlos para entender los servicios que están corriendo actualmente. Los siguientes comandos ayudarán:
systemctl list-units --type service --all
Este comando lista todos los servicios, y muestra el estado de cada uno. La salida mostrará si cada servicio está activo, inactivo, o ha fallado.
Para iniciar un servicio que actualmente no está en funcionamiento, use el comando start
de la siguiente manera:
sudo systemctl start <service-name>
Por ejemplo, para iniciar el servidor HTTP de Apache, se ejecutaría:
sudo systemctl start httpd
Si necesita detener un servicio, se usa el comando stop
. Esto es útil en varios escenarios, como cuando se realizan mantenimientos o actualizaciones:
sudo systemctl stop <service-name>
Ejemplo:
sudo systemctl stop httpd
Esto detiene el servidor HTTP de Apache.
A veces, en lugar de detener y reiniciar un servicio, es posible que desee reiniciarlo directamente. Esto se puede hacer con el comando restart
:
sudo systemctl restart <service-name>
Ejemplo:
sudo systemctl restart httpd
Esto reinicia el servidor HTTP de Apache. Esto es especialmente útil cuando ha realizado cambios en el archivo de configuración y desea que el servicio recargue estos cambios.
Para verificar si un servicio está funcionando, puede usar el comando status
. Al hacerlo, obtiene información sobre el estado actual del servicio, cualquier mensaje de error y salida de registro:
systemctl status <service-name>
Por ejemplo:
systemctl status httpd
Esto mostrará información detallada sobre el servicio httpd, mostrando si está activo, habilitado, o si tuvo algún problema durante su último inicio.
Habilitar un servicio asegura que se inicie automáticamente al arrancar. Por el contrario, deshabilitar un servicio significa que no se iniciará automáticamente:
sudo systemctl enable <service-name>
sudo systemctl disable <service-name>
Por ejemplo, para habilitar el servidor HTTP de Apache:
sudo systemctl enable httpd
De manera similar, para evitar que se inicie automáticamente:
sudo systemctl disable httpd
Habilitar es particularmente beneficioso para servicios que quiere que siempre estén funcionando cuando su sistema esté encendido, como servidores web o de bases de datos.
Enmascarar un servicio es una forma poderosa de asegurar que un servicio no se ejecute en absoluto. Una vez que un servicio está enmascarado, no se puede iniciar de ninguna manera hasta que se desenmascare:
sudo systemctl mask <service-name>
sudo systemctl unmask <service-name>
Ejemplo:
sudo systemctl mask httpd
Este comando asegura que incluso si intenta iniciar el servidor HTTP de Apache, no se iniciará. Para permitir que se ejecute nuevamente, desenmascárelo:
sudo systemctl unmask httpd
Si realiza cambios en los archivos de configuración relacionados con systemd, debe recargar la configuración del gestor systemd usando lo siguiente:
sudo systemctl daemon-reload
Este comando es especialmente importante cuando agrega nuevos archivos de configuración o realiza cambios en archivos existentes en los directorios /etc/systemd/system
o /lib/systemd/system
.
A veces, puede necesitar editar archivos de unidades de servicio para personalizar el comportamiento del servicio. Con systemctl, puede hacer esto sin acceder directamente a los archivos del servicio:
sudo systemctl edit <service-name>
Esto abre el archivo de unidad en su editor de texto predeterminado. Una vez que guarde sus cambios y cierre el editor, systemctl creará una anulación. No olvide recargar la configuración del gestor systemd después.
Gestionar servicios usando systemctl
es una habilidad esencial para cualquier administrador de sistemas Linux. Esta poderosa utilidad proporciona comandos simples para controlar servicios que se ejecutan en el sistema. Ya sea que esté iniciando, deteniendo, habilitando o deshabilitando servicios, systemctl
simplifica estos procesos, aumentando la fiabilidad y el rendimiento del sistema.
También es importante entender los niveles de gestión de servicios, desde operaciones simples como iniciar y detener hasta operaciones complejas como enmascarar o editar archivos de unidad. A medida que se sienta más cómodo usando systemctl, podrá gestionar servicios en un sistema Linux de manera más efectiva, lo que contribuirá a la estabilidad y eficiencia del sistema en general.
Si encuentras algo incorrecto en el contenido del artículo, puedes