fbpx Systemd en Linux: cómo funciona, systemctl y Units | Certificação Linux

Systemd en Linux: cómo funciona y sus comandos

📅 18/02/2022 ⏱ 8 min ✍️ Uira Ribeiro
Linuxcomandoscómo-hacer
Systemd en Linux: cómo funciona y sus comandos
Exam Pass App — mais de 7.000 questões LPI, offline, em 5 idiomas, disponível no Android e na App Store
Disponible en
Google Play
Disponible en
App Store

Si empezaste a estudiar sobre el sistema Linux recientemente, sin dudas debes haberte encontrado con el "systemd". 

¿Pero sabes, exactamente, qué significa? ¿O todavía, cuál es la diferencia entre este y el System V, también famoso en Linux? 

Estas dudas son muy comunes y pueden ser fácilmente respondidas, ayudándote a tener la dirección correcta. 

Fue pensando en esto que el equipo Certificación Linux desarrolló este artículo completo, con todo lo que necesitas saber sobre el systemd. ¡Solo continúa leyendo. Compruébalo!

Init system: entiende el concepto

Antes de entender el systemd, es necesario entender el concepto de init system. Como el propio nombre sugiere, el init system es responsable de toda la inicialización del sistema. 

Esto significa que, para que el Linux sea activado, el init system es esencial. En esta vertiente, predomina el systemd, que es una gran herramienta de ayuda al sistema de inicialización. 

En otros sistemas, como es el caso del Windows, ese conjunto de herramientas para inicialización también existe, pero a través del "Service Control Manager", o Administrador de Comandos de Servicios, en una traducción libre. 

¿Qué es un systemd?

El systemd representa la inicialización del sistema operativo Linux. En él, existen otros programas que se ejecutan en segundo plano, a fin de ayudar al desarrollo de este proceso. 

Estos complementos del segundo plano se llaman daemon, que puede ser considerado un proceso hijo del init.

¿Cómo funciona un systemd?

De manera simple, tan pronto como el kernel del Linux es activado, ocurre la actuación del systemd, que será responsable por activar todas las etapas del proceso. 

En este momento, softwares responsables por el desempeño de componentes del hardware como placas de video y procesadores también son despertados. 

Es por medio del systemd que las distribuciones del Linux, también llamadas distros, se vuelven viables y funcionan correctamente. 

Esto explica cómo funciona el systemd. En su estructura, existen todavía otras herramientas que son responsables por gestionar y organizar tareas para mantener el buen desempeño. 

Todas estas funciones están organizadas en forma de unidades, que son popularmente llamadas units, siendo que algunas muy comunes en este universo son las de service, time, socket, path y swap.

Cada una de estas unidades es esencial para que todo el sistema funcione y sea frecuentemente optimizado.

Comparativo - System V (sysvinit) x systemd

linux systemd o systemv
Foto: Freepik | ¿Systemd es mejor que system v?

Otra duda muy común, después de identificar el significado del systemd, es cuál es la diferencia entre este y el System V. 

La verdad es que cada uno tiene sus singularidades y funciones, pero ambos se refieren al sistema de inicialización. 

Algunas de las principales diferencias entre el System V y systemd están en la tabla abajo:

System VSystemd
es más antiguo, recordando el Unix estándares más reciente, teniendo varias distros migrando hacia él
tiene la inicialización un poco más lentaprovee una inicialización más rápida
la inicialización es a través de archivos de scripts shellla inicialización ocurre a través de archivos ".service"
hace uso de más memoria y hardwareutiliza poca memoria
API más antiguatiene una API mejorada
puede ser más complejotiene un diseño simple y eficiente

Desventajas del System V

Aunque el System V init Daemon es un sistema robusto y utilizado en el Kernel 2.4, tiene serias desventajas, especialmente cuando se compara con el systemd. Ellas son:

  • es una de las primeras versiones del sistema Unix, y por eso, un poco antiguo;
  • existe mayor posibilidad de incompatibilidad con las distros y sistemas;
  • en algunos casos, el System V se ha vuelto obsoleto;
  • el monitoreo de los servicios (daemon) en ejecución es limitado, generando procesos zombies;
  • el reinicio de servicios que dejaron de funcionar es problemático;
  • existe un paralelismo que vuelve todo más complicado;

Debido a varias limitaciones del init, otro sistema especial de control de los procesos de boot y gerencia de la ejecución de los programas fue creado y denominado systemd.

Por eso, el systemd vale mucho más la pena, si se compara con el System V (comúnmente pronunciado como system five).

Novedades del systemd

La principal novedad del systemd es su capacidad y eficiencia, con la ejecución de funciones de manera cada vez más rápida y ligera. 

Así, otros procesos no son afectados, mucho menos prejudicados. 

Además, este nuevo sistema ya es ampliamente utilizado en las distribuciones más conocidas, especialmente en las versiones de Kernel superiores a 2.6. 

Su principal ventaja es la carga del sistema de manera más rápida, ejecutando los servicios y procesos en paralelo.

Esto fue posible con la llegada de los nuevos procesadores dotados de múltiples núcleos, que permiten la ejecución de varios threads en paralelo.

Como novedades y ventajas del systemd, podemos citar:

  • activación vía socket y bus (ejecuta los servicios bajo demanda);
  • mejor paralelización de los procesos;
  • uso de cgroups (control groups – grupos de control) en lugar de PIDS;
  • soporta creación de imágenes de estado de memoria para guardar y restaurar estados de ejecución.
  • el sistema de control de grupos permite que el systemd supervise los procesos, de forma a garantizar que, cuando un servicio es detenido, todos los procesos hijos, nietos, bisnietos etc. también sean detenidos.
  • con una gerencia más robusta, más ciclos de CPU son necesarios para la creación de nuevos procesos. Pero debido al alto desempeño de los procesadores, esto no parece ser un problema para el systemd.
  • en el systemd, la carga de procesos, cambio de runlevel y scripts de carga son bien diferentes del init.

La sintaxis de los archivos de configuración del Systemd, llamados de unidades, está inspirada en los archivos .ini de Windows. Estos archivos se encuentran en dos directorios, a saber:

/usr/lib/systemd/system/: Unidades provenientes de paquetes de software instalados;

/etc/systemd/system/: Unidades instaladas por el administrador;

Vea cómo manejar los servicios en systemd utilizando el comando systemctl:

Cómo hacer el control de servicios usando el comando systemctl

linux systemd comandos
Foto: Shutterstock | ¿Cómo funcionan los comandos en systemd?

Controlar servicios en systemd no es difícil. A través del comando systemctl, todo se vuelve posible. 

Para iniciar nuevos servicios, por ejemplo, basta con unir el comando systemctl con el subcomando "start". 

Al mismo tiempo, para detener un servicio determinado, basta con seleccionar el comando "stop".

1. Verificar el estado de un servicio en systemd

# systemctl status cron.service

cron.service - Command Scheduler

               Loaded: loaded (/lib/systemd/system/cron.service; enabled)

               Active: active (running) since Mon, 28 May 2012 18:09:57 -0300; 7min ago

             Main PID: 673 (cron)

               CGroup: name=systemd:/system/cron.service

                                 + 673 /usr/sbin/cron -n

2. Detener un servicio en systemd

# systemctl stop cron.service

Vea el estado del servicio cuando está detenido:

# systemctl status cron.service

cron.service - Command Scheduler

               Loaded: loaded (/lib/systemd/system/cron.service; enabled)

               Active: inactive (dead) since Mon, 28 May 2012 18:18:26 -0300; 27s ago

             Main PID: 673 (code=exited, status=0/SUCCESS)

               CGroup: name=systemd:/system/cron.service

3. Para iniciar un servicio en systemd

# systemctl start cron.service

4. Para reiniciar un servicio en systemd

# systemctl restart cron.service

5. Para habilitar un servicio durante la carga del sistema en systemd

# systemctl enable cron.service

6. Para deshabilitar un servicio durante la carga del sistema en systemd

# systemctl disable cron.service

7. Para cambiar el runlevel al modo texto (runlevel 3)

# systemctl isolate multi-user.target

8. Para cambiar el runlevel al modo gráfico (runlevel 5)

# systemctl isolate graphical.target

9. Para alterar el runlevel predeterminado en systemd

1) Eliminar el enlace simbólico:

# rm /etc/systemd/system/default.target

2) Para establecer runlevel 3 como predeterminado:

# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

¡Profundice su conocimiento en Linux con nuestro curso en línea! ¡Inscríbase ahora!

Conclusión

¿Se dio cuenta de que aprender sobre systemd no es complicado? ¡Basta con buscar la información en la fuente correcta!

Si le gusta el contenido sobre Linux y este universo de principales comandos Linux, le recomendamos que visite el Blog Certificación Linux. En él encontrará diversos contenidos increíbles sobre el tema. ¡Vale la pena consultar!

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Después de años viendo profesionales perder horas en tareas simples por no conocer las herramientas correctas de Linux, decidí enseñar.
Hoy soy autor de la mayoría de los Materiales de Aprendizaje oficiales de la LPI y mentor de más de 14,000 alumnos certificados.

Conoce mi historia completa →

Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.

Certificação Linux — a plataforma líder em certificações Linux no Brasil
WhatsApp