logo

Cómo iniciar, detener y reiniciar servicios en Linux usando el comando systemctl

Los servicios del sistema desempeñan un papel crucial en el funcionamiento de un sistema Linux, manejando diversas tareas y procesos en segundo plano.systemctl>es una poderosa herramienta de línea de comandos que permite a los usuarios administrar estos servicios de manera efectiva. En este artículo, exploraremos los conceptos básicos del usosystemctl>para iniciar, detener, reiniciar, habilitar, deshabilitar y mostrar el estado de los servicios en un entorno Linux.

¿Qué es systemctl?

Antes de sumergirse en la gestión de servicios, es esencial comprender los conceptos básicossystemctl>. Este comando se utiliza para controlar el administrador de servicios y sistemas systemd, que es un componente central en las distribuciones modernas de Linux.



systemctl [command] [unit]>

Aquí,

  • command> : Acción a realizar (por ejemplo, iniciar, detener, reiniciar, habilitar, deshabilitar).
  • unit> : El servicio o unidad a verse afectado.

Systemctl es un controlador o utilidad de Systemd (un sistema de inicio con un conjunto de programas ejecutados en segundo plano), con auxiliar en la administración de servicios. Estos comandos se ejecutan en modo root si no está en modo root el sistema, solicitando la contraseña de root.

¿Qué es un servicio?

Un servicio en informática es un proceso en segundo plano que realiza tareas y funciones específicas sin la intervención del usuario. Los servicios a menudo se inician automáticamente durante el inicio del sistema y se ejecutan continuamente para proporcionar funcionalidades como servicio web, uso compartido de archivos o monitoreo del sistema. Son administrados por el sistema operativo y se pueden iniciar, detener o reiniciar según sea necesario. Los servicios ayudan a garantizar que las operaciones esenciales estén constantemente disponibles. Los ejemplos incluyen servidores web como Apache, servidores de bases de datos como mysql, y servicios de registro del sistema.



¿Qué es un demonio?

Un demonio es un proceso en segundo plano que se ejecuta continuamente en un sistema Linux o Unix. Realiza tareas sin interacción directa del usuario y, a menudo, se inicia automáticamente en el arranque. Los ejemplos comunes incluyen servidores web, servidores de bases de datos y herramientas de monitoreo de sistemas. Los demonios suelen tener nombres que terminan en d, comohttpd>osshd>. Ayudan a gestionar las funciones y servicios del sistema de manera eficiente.

¿Qué es el sistema de inicio?

El sistema de inicio es el primer proceso que se ejecuta cuando se inicia un sistema Linux y es responsable de inicializar el sistema. Gestiona los servicios y procesos del sistema, gestionando su inicio, parada y reinicio. Los sistemas de inicio comunes incluyen SysVinit, Upstart y systemd. El sistema init garantiza que todos los servicios necesarios se estén ejecutando correctamente y gestiona las dependencias entre ellos. Continúa ejecutándose en segundo plano para monitorear y administrar los procesos del sistema durante todo el funcionamiento del sistema.

Unidades en systemd

En systemd, las unidades son los objetos básicos que systemd gestiona y controla. Representan recursos del sistema como servicios, temporizadores, dispositivos y puntos de montaje. Cada unidad está definida por un archivo de configuración con un sufijo específico, como.service>para servicios o.timer>para temporizadores. Las unidades se pueden iniciar, detener, habilitar o deshabilitar usando comandos systemctl. Son esenciales para definir cómo arranca el sistema y gestiona diversos procesos y recursos.



.unidades de servicio en systemd

sistemad.service>Las unidades son archivos de configuración que se utilizan para administrar servicios en sistemas Linux. Definen cómo y cuándo se deben iniciar, detener y reiniciar los servicios. Cada.service>El archivo contiene detalles como el nombre del servicio, la descripción y el comando a ejecutar. Estos archivos normalmente se encuentran en/etc/systemd/system>o/lib/systemd/system>. Gestionarlos implica comandos comosystemctl start>,systemctl stop>, ysystemctl enable>.

¿Cómo encontrar todas las unidades systemd en el sistema?

Para enumerar las unidades de sistemas disponibles o enumerar todos los servicios en Linux usamos el siguiente comando:

systemctl list-unit-files --type service -all>

Cómo iniciar un servicio del sistema en Linux

Sintaxis:

ordenar lista de matrices en java
sudo systemctl start service.service>

El comando start sirve para iniciar (activar) una o más unidades especificadas en la línea de comando.

Ejemplo:

sudo systemctl start mariadb>
inicio systemctl

Inicio del comando

Cómo detener un servicio del sistema en Linux

Sintaxis:

sudo systemctl stop service.service>

El comando stop sirve para detener el servicio o (desactivar) una o más unidades especificadas en la línea de comando.

Ejemplo:

sudo systemctl stop mariadb>
parada systemctl

Comando de parada y estado

Cómo mostrar el estado de un servicio del sistema en Linux

Sintaxis:

sudo systemctl status service.service>

El comando status sirve para comprobar el estado del servicio. Muestra información concisa sobre el estado del tiempo de ejecución de una o más unidades, seguida de los datos de registro más recientes del diario. Si no se especifican unidades, muestra el estado del sistema.

Ejemplo:

sudo systemctl status mariadb>
estado del sistema

Estado del comando

Cómo reiniciar un servicio del sistema en Linux

Sintaxis:

sudo systemctl restart service.service>

El comando restart sirve para reiniciar el servicio en ejecución. Detenga y luego inicie una o más unidades especificadas en la línea de comando. Si las unidades aún no están funcionando, se pondrán en marcha.

Ejemplo:

sudo systemctl restart mariadb>
reiniciar systemctl

Reinicio del comando

Cómo habilitar un servicio del sistema en Linux

Sintaxis:

sudo systemctl enable name_service.service>

El comando enable sirve para ejecutar el servicio desde la inicialización si consta de una o más unidades o instancias de unidad. Esto creará un conjunto de enlaces simbólicos , tal como está codificado en las secciones [Instalar] de los archivos de unidad indicados. la configuración del administrador del sistema se recarga (de una manera equivalente a daemon-reload), para garantizar que los cambios se tengan en cuenta de inmediato.

Ejemplo

sudo systemctl enable mariadb>

habilitar systemctl

Habilitar comando

Estado del comando

Cómo deshabilitar un servicio del sistema en Linux

Sintaxis:

sudo systemctl disable name_service.service>

El comando de desactivación sirve para retirar el servicio desde la inicialización de una o más unidades. Esto elimina todos los enlaces simbólicos a los archivos de unidad que respaldan las unidades especificadas del directorio de configuración de la unidad y, por lo tanto, deshace cualquier cambio realizado al habilitar o vincular.

Ejemplo:

sudo systemctl disable mariadb>

systemctl desactivar

Comando deshabilitar

Estado del comando

matriz de objetos en java

Apague o reinicie el sistema usando systemctl

Reinicie el sistema: instruyesystemd>para reiniciar todo el sistema. Todos los servicios se detienen y el sistema pasa por un proceso de apagado completo antes de reiniciarse.

sudo systemctl reboot>

Apague el sistema: Le dice a systemd que apague la máquina. Todos los servicios y procesos se detienen y el sistema se apaga de forma segura.

sudo systemctl shutdown>

diarioctl

journalctl>es un comando utilizado en sistemas Linux para consultar y mostrar registros delsystemd>Journal, que es un servicio del sistema que recopila y almacena datos de registro. Aquí tienes una guía sencilla sobre cómo utilizarjournalctl>:

journalctl -n 10>se utiliza para mostrar las últimas 10 entradas (líneas) del diario systemd. A continuación se muestra un desglose de lo que hace cada parte del comando:

  • journalctl> : Invoca eljournalctl>comando, que se utiliza para consultar y mostrar registros del diario systemd.
  • -n 10> : Especifica el número de líneas que se mostrarán. En este caso,-n 10>instruyejournalctl>para mostrar las últimas 10 entradas del diario.
journalctl -n 10>

Proteger un servicio utilizando systemd es una práctica esencial para proteger su sistema contra posibles vulnerabilidades y accesos no autorizados. Aquí hay una guía simplificada sobre cómo lograr esto:

1. Comprender los archivos de la unidad de servicio

  • Configuración del servicio : Cada servicio en systemd es administrado por un archivo unitario, generalmente ubicado en/etc/systemd/system/>. Estos archivos definen cómo funciona el servicio, incluido su comportamiento de inicio, límites de recursos y configuraciones de seguridad.

2. Restringir los permisos de servicio

  • Permisos de usuarios y grupos : Especifique el usuario y grupo bajo el cual se ejecuta el servicio. Evite utilizar el usuario root siempre que sea posible para minimizar el impacto de las violaciones de seguridad.

3. Utilice las funciones de seguridad de systemd

  • Tmp Privado : Habilitar privado/tmp>y/var/tmp>directorios del servicio para evitar fugas de información entre diferentes servicios.
  • ProtectSystem y ProtectHome : configure estas opciones para restringir el acceso a los directorios del sistema y a los directorios de inicio de los usuarios, respectivamente, para mejorar la seguridad del sistema.
  • ReadOnlyPaths y ReadWritePaths : especifique en qué directorios puede leer o escribir el servicio. Limitar el acceso de escritura puede evitar modificaciones no deseadas en archivos críticos.

4. Limite el uso de recursos

  • Limitar CPU y memoria : UsarCPUQuota>yMemoryLimit>opciones para restringir el uso de CPU y memoria del servicio, evitando ataques de agotamiento de recursos.

5. Habilite los controles de red

  • Restringir el acceso a la red : UtilizarRestrictAddressFamilies>,IPAddressAllow>, yIPAddressDeny>opciones para controlar el acceso a la red para el servicio, limitando su exposición a amenazas potenciales.

6. Establecer permisos del sistema de archivos

  • Permisos del sistema de archivos : Asegúrese de que los archivos y directorios del servicio tengan los permisos adecuados (chmod>) y propiedad (chown>) para evitar el acceso no autorizado.

7. Actualice y supervise periódicamente

  • Mantenga el sistema actualizado : actualice periódicamente su sistema y el software de servicio para corregir las vulnerabilidades de seguridad y garantizar que sus medidas de seguridad sigan siendo efectivas.
  • Monitorear registros : Supervisar los registros de diario de systemd (journalctl>) para cualquier actividad sospechosa o evento relacionado con la seguridad, y tomar las medidas apropiadas si es necesario.

Conclusión

Hablamos de systemctl, que es una herramienta de línea de comandos vital para administrar los servicios del sistema en Linux, y desempeña un papel crucial en tareas como iniciar, detener, reiniciar, habilitar y deshabilitar servicios. Este artículo proporciona una guía completa de systemctl, que cubre su sintaxis y comandos clave. Desde enumerar las unidades systemd disponibles hasta habilitar o deshabilitar el inicio automático, cada comando contribuye a una gestión eficaz del servicio. El artículo también abordó preguntas comunes y ofreció soluciones prácticas para tareas como verificar el estado del servicio, iniciar, detener y reiniciar servicios y habilitar o deshabilitar el inicio automático. En general, comprender y dominar los comandos systemctl son esenciales para Administradores de Linux para garantizar la estabilidad y el rendimiento óptimo de sus sistemas.

Systemctl – Preguntas frecuentes

¿Qué es un servicio de Linux?

Un servicio de Linux es un proceso o aplicación en segundo plano que se ejecuta independientemente de la interacción del usuario, proporcionando una funcionalidad específica o realizando tareas del sistema. Lo administra el sistema init, generalmente systemd, y se puede iniciar, detener y administrar mediante comandos comosystemctl>.

¿Cuál es la diferencia entre Systemctl y servicio?

systemctl>es una herramienta de línea de comandos utilizada para administrar los servicios systemd, mientras queservice>es un enlace simbólico asystemctl>en muchos sistemas, proporcionando compatibilidad con scripts de inicio más antiguos.

empresa vs empresa

¿Cómo verificar el estado del servicio en Linux?

Utilice ` systemctl status `> para ver si el servicio está ejecutándose, activo (detenido recientemente) o inactivo (nunca iniciado). Esto revela información importante como el uso de la memoria y las conexiones activas.

¿Cómo inicio, detengo y reinicio un servicio?

para empezar , usar :

sudo systemctl start>

por parar , usar :

sudo systemctl stop>

Para reiniciar , usar :

sudo systemctl restart>

Nota : Recuerde reemplazar>con el nombre real del servicio.

¿Cómo hago para que un servicio se inicie automáticamente al arrancar?

Usarsudo `> systemctl enable `> para configurar el servicio para que se inicie automáticamente cuando se inicie el sistema.

Para deshabilitar el inicio automático, use ` sudo systemctl disable `> .