Gestión de servicios en Linux: iniciar, parar, reiniciar, habilitar, …
Gestiona y controla los servicios de tu sistema Linux de manera eficiente utilizando systemctl. Referencia rápida con los comandos más utilizados para la gestión de servicios.
Los servicios en Linux son programas que se ejecutan en segundo plano y realizan tareas específicas en el sistema. Aprender a gestionarlos es fundamental para cualquier administrador.
Guía básica del comando de gestión de servicios ‘systemctl’
Iniciar un servicio
Para iniciar un servicio que no está en ejecución, utilizamos el comando start:
sudo systemctl start apache2
Este comando iniciará el servidor web Apache si no está en ejecución.
Detener un servicio
Cuando necesitemos detener un servicio que está en ejecución:
sudo systemctl stop apache2
Este comando detendrá el servidor Apache. Si el servicio ya está detenido, el comando no tendrá efecto.
Reiniciar un servicio
Para reiniciar un servicio (útil después de cambios en la configuración):
sudo systemctl restart apache2
Este comando detendrá y volverá a iniciar el servicio en una sola operación.
Recargar un servicio
Para recargar la configuración de un servicio sin detenerlo:
sudo systemctl reload apache2
Este comando es útil cuando solo necesitas aplicar cambios de configuración sin interrumpir el servicio.
Comprobar el estado de un servicio
Para verificar si un servicio está funcionando correctamente:
sudo systemctl status apache2
Este comando mostrará información detallada sobre el estado del servicio, incluyendo si está activo, inactivo o ha fallado.
Habilitar/Deshabilitar el inicio automático
Para controlar si un servicio se inicia automáticamente al arrancar el sistema:
Para habilitar:
sudo systemctl enable apache2
Para deshabilitar:
sudo systemctl disable apache2
Enmascarar/Desenmascarar un servicio
Para evitar que un servicio pueda iniciarse, incluso manualmente:
sudo systemctl mask apache2
Para permitir que un servicio previamente enmascarado pueda iniciarse:
sudo systemctl unmask apache2
El enmascarado es más restrictivo que deshabilitar un servicio, ya que impide cualquier inicio del servicio.
Cambiar el target predeterminado
Para cambiar el nivel de ejecución (target) predeterminado para el próximo arranque:
sudo systemctl set-default multi-user.target
Los targets comunes incluyen graphical.target
(entorno gráfico) y multi-user.target
(modo texto multiusuario).
Listar archivos de unidad
Para ver todos los archivos de unidad instalados y su estado actual:
sudo systemctl list-unit-files
Este comando muestra qué servicios están habilitados, deshabilitados, enmascarados o estáticos.
Mostrar dependencias de una unidad
Para ver las dependencias requeridas por una unidad específica:
sudo systemctl list-dependencies apache2
Este comando es útil para entender qué otros servicios necesita un servicio para funcionar.
Listar sockets activos
Para ver todos los sockets activos utilizados para comunicación entre procesos:
sudo systemctl list-sockets
Los sockets son puntos de comunicación que permiten que los procesos intercambien datos.
Mostrar trabajos activos
Para ver todas las operaciones de systemd en curso:
sudo systemctl list-jobs
Útil para identificar operaciones pendientes o en ejecución en el sistema.
Listar unidades activas
Para mostrar todas las unidades systemd cargadas y activas:
sudo systemctl list-units
Esto incluye servicios, sockets, dispositivos y otros tipos de unidades systemd.
¿Cuándo usar cada comando?
- Start: Cuando se necesita iniciar un servicio después de una instalación o si se detuvo manualmente.
- Stop: Útil para liberar recursos del sistema o prevenir que programas no deseados se ejecuten.
- Restart: Cuando se realizan cambios en la configuración o si el servicio no está funcionando correctamente.
- Reload: Para aplicar cambios de configuración sin interrumpir el servicio.
- Status: Para diagnosticar problemas o verificar si un servicio está funcionando como se espera.
- Enable/Disable: Para controlar qué servicios se inician automáticamente con el sistema, útil para gestionar recursos y seguridad.
- Mask/Unmask: Para bloquear completamente un servicio o permitir su uso después de haberlo bloqueado.
- List-units/List-unit-files: Para auditar y revisar los servicios del sistema.
Se necesitan privilegios de superusuario (sudo) para ejecutar la mayoría de estos comandos, ya que afectan a la configuración del sistema.