Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Linux y Redes de ordenadores Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Actualmente, el gestor de sistemas y servicios por defecto de la mayoría de las distribuciones de Linux es systemd

El proceso systemd sustituye al SysV init. Se ejecuta como el primer proceso tras el arranque del núcleo y es responsable de llevar el host Linux al estado en el que puede ser utilizado. Es responsable de iniciar y gestionar los servicios, montar sistemas de archivos, gestionar el hardware, generar el prompt de inicio de sesión y mucho más

Una ventaja clave sobre SysV es que systemd inicia tantos servicios como sea posible en paralelo, acelerando así el proceso de arranque, y eso hace que aparezca la pantalla de inicio de sesión más rápidamente

Unidades

Los elementos gestionados por systemd se denominan unidades. Los archivos de las unidades se encuentran en /lib/systemd/system

Unidades de servicio

Para la gestión de servicios, las unidades objetivo son las unidades de servicio, que tienen archivos de unidad con el sufijo .service

Gestión de servicios systemd

El comando para gestionar las unidades systemd es systemctl

Iniciar y detener servicios

Para iniciar un servicio systemd, utilice el comando systemctl start

$ sudo systemctl start nombre

.servicio
Puede dejar el sufijo .service. Por ejemplo, para iniciar el servidor apache en Ubuntu
$ sudo systemctl start

 apache2

Para detener un servicio en ejecución

$ sudo systemctlstop nombre.servicio

Por ejemplo, para detener el servidor apache en Ubuntu
$ sudo

 systemctl

stop apache2

Reinicio y recarga de servicios

Para reiniciar un servicio en ejecución, utilice el comando restart
$ sudo

 systemctl restart nombre.servicio

Y para recargar únicamente el archivo de configuración
$ sudo

 systemctl

reload nombre.servicio

Activación y desactivación de servicios

Si desea que un servicio se inicie automáticamente al arrancar el sistema, utilice el comando enable
$

 sudo systemctl

enable nombre.servicio
Para deshabilitar un servicio para que no se inicie al arrancar el sistema
$

 sudo systemctl disable

nombre.servicio
La desactivación no detiene un servicio en ejecución

Ver el estado del servicio

Para ver información sobre un servicio
$

 sudo system

ctl status nombre.servicio
Esto le mostrará el estado del servicio y las primeras líneas del archivo de registro. Así, mientras el servicio está en ejecución es, la salida de

sudo systemctl status apache2

es

apache2.service - El servidor HTTP Apache
 Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
 Drop-In: /lib/systemd/system/apache2.service.d
 └─apache2-systemd.conf
 Activo: activo (en ejecución) desde Tue 2020-05-19 22:11:36 UTC; hace 4 días
 Proceso: 116002 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
PID principal: 104165 (apache2)
 Tareas: 55 (límite: 1024)
 CGroup: /system.slice/apache2.service
 ├─104165 /usr/sbin/apache2 -k start
 ├─116006 /usr/sbin/apache2 -k start
 └─116007 /usr/sbin/apache2 -k start

May 19 22:11:36 ubuntu18 systemd<x><x><x><x>[1]</x></x></x></x>: Iniciando El Servidor HTTP Apache...
May 19 22:11:36 ubuntu18 systemd[1<x><x><x><x>]</x></x></x></x>: Started The Apache HTTP Server.
May 21 06:25:01 ubuntu18 systemd[1<x><x><x><x>]</x></x></x></x>: Reloading The Apache HTTP Server.
May 21 06:25:01 ubuntu18 systemd[1<x><x><x><x>]</x></x></x></x>: Recargado El Servidor HTTP Apache.
May 22 06:25:01 ubuntu18 systemd<x><x><x><x>[</x></x></x></x>1]:

Recargado El Servidor HTTP Apache

Para comprobar si un servicio está activo

$ sudo systemctl is-active nombre.servicio

Así, mientras el servicio apache2 está en ejecución, la salida del comando systemctl is-active es
$

 sudo systemctl is-active apache2
active

Para comprobar si un servicio está activado

$ sudo systemctl is-enabled nombre.servicio

Visualización del estado del sistema

Todos los comandos que ha visto hasta ahora se utilizan para gestionar un único servicio. Cuando desee una visión general del estado del sistema, utilice el siguiente conjunto de comandos

Para ver todos los tipos de unidades

$ sudo systemctl -t help

Tipos de unidad

disponibles:
service
socket
target
device
mount
automount
swap
timer
path
slice
scope

Para listar todas las unidades instaladas, utilice list-unit-files

$ sudo systemctl list

-unit-files

UNIT FILE STATE
proc-sys-fs-binfmt_misc.automount estático
-.mount generado
boot-efi.mount generado
dev-hugepages.mount estático
dev-mqueue.mount estático
mnt.mount generado
proc-sys-fs-binfmt_misc.mount estático
sys-fs-fuse-connections.mount estático
sys-kernel-config.

mount estático


sys-kernel-debug.mount
estático
acpid.path habilitado
apport-autoreport.path habilitado
systemd-ask-password-console.path estático
systemd-ask-password-plymouth.path estático
systemd-ask-password-wall.path estático
session-161.scope transient
accounts-daemon.service habilitado

La salida sólo tiene dos columnas Archivo de unidad y Estado. El estado será normalmente habilitado, deshabilitado, estático o enmascarado

  • Estático: Esto significa que la unidad no puede habilitarse, realiza una acción puntual o es una dependencia de otra unidad y no puede ejecutarse por sí misma.
  • Enmascarada: Una unidad listada como enmascarada significa que es completamente inarrancable, ya que está vinculada a /dev/null. Esto se denomina enmascarar la unidad. Esto impide que el servicio se inicie, manual o automáticamente.

Listar todos los servicios instalados

El comando systemctl list-unit-files con el filtro -t o -type service sólo muestra el estado de los servicios instalados

$ sudo systemctl list-unit-files -t servicio
ESTADO DEL ARCHIVO DE UNIDAD
accounts-daemon.service habilitado
acpid.service deshabilitado
apache-htcacheclean.service deshabilitado
apache-htcacheclean@.service deshabilitado
apache2.service habilitado
apache2@.service deshabilitado
apparmor.service habilitado
apport-autoreport.service estático
apport-forward@.

service estático


apport.service generado
apt-daily-upgrade.service estático
apt-daily.service estático
atd.service habilitado
autovt@.service habilitado
blk-availability.service habilitado
bootlogd.service enmascarado
bootlogs.service enmascarado

Para ver todas las unidades de servicio activas, utilice list-units con el filtro de servicio -t

$ sudo systemctl list-units -t

service


UNIT LOAD ACTIVE SUB DESCRIPTION
 accounts-daemon.service cargado activo en ejecución Servicio de cuentas
 apache2.service cargado activo en ejecución El servidor HTTP Apache
 apparmor.service cargado activo salido Inicialización de AppArmor
 apport.service cargado activo salido LSB: generación automática de informes de fallos
 atd.service cargado activo en ejecución Programador de ejecución diferida
 blk-availability.service loaded active exited Disponibilidad de dispositivos de bloque
 cloud-config.service loaded active exited Aplicar la configuración especificada en cloud-con
 cloud-final.service loaded active exited Ejecutar scripts de usuario/final de la nube
 cloud-init-local.

service loaded active exited Initial

cloud-init job (pre-networking)
 cloud-init.service loaded active exited Initial cloud-init job (metadata service
 console-setup.service loaded active exited Configurar la fuente de la consola y el mapa de teclas
 cron.service loaded active running Procesamiento regular de programas en segundo plano dae

La salida tiene las siguientes columnas

  • UNIT: El nombre de la unidad de servicio systemd
  • LOAD: Muestra si la definición de la unidad se ha leído y cargado correctamente
  • ACTIVE: Describe si la unidad está activa.
  • SUB: Estado de activación de bajo nivel de la unidad, que ofrece información más detallada sobre la unidad. Esto variará según el tipo de unidad.
  • DESCRIPCIÓN: La descripción de la unidad de servicio.

Conclusión

Espero que esto le de una idea sobre el uso de systemctl para gestionar servicios en Linux. Si está interesado en aprender más, puede consultar este curso de Dominio de Linux.

  • Vijay Khurana
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre Linux
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder