<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Gesti%C3%B3n_del_Sistema_con_Systemd</id>
	<title>Gestión del Sistema con Systemd - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Gesti%C3%B3n_del_Sistema_con_Systemd"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Gesti%C3%B3n_del_Sistema_con_Systemd&amp;action=history"/>
	<updated>2026-10-21T11:33:04Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Gesti%C3%B3n_del_Sistema_con_Systemd&amp;diff=63903&amp;oldid=prev</id>
		<title>Javierfp: /* Referencias */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Gesti%C3%B3n_del_Sistema_con_Systemd&amp;diff=63903&amp;oldid=prev"/>
		<updated>2018-01-24T18:32:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Referencias&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Systemd es un sistema de gestión del entorno de usuario de los sistemas GNU/Linux modernos. Aunque fue desarrollado originalmente por RedHat se ha ido imponiendo poco a poco, y no sin cierta controversia, entre las distribuciones GNU/Linux más conocidas.&lt;br /&gt;
&lt;br /&gt;
Tiene múltiples ventajas respecto a sysvinit ya que permite gestionar de un modo mucho más simple y eficiente todos los aspectos relacionados con el arranque. También tiene sus detractores y ha recibido numerosas críticas por parte de miembros de la comunidad que consideran que systemd es una ruptura con la filosofía fundamental de Linux: &amp;quot;Haz algo concreto y hazlo bien&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Algunos administradores de sistemas han denominado a systemd como el &amp;quot;segundo kernel&amp;quot;. Conocemos el kernel de Linux, es decir, el sistema operativo propiamente dicho, que ejecuta en modo privilegiado, con acceso total al hardware. El resto de procesos ejecutados en el sistema pertenecen al denominado &amp;quot;espacio de usuario&amp;quot;, es decir el modo de ejecución no privilegiado, que requiere de la intermediación del sistema operativo para la asignación de recursos a esos procesos. Systemd toma el control de la mayoría de aspectos de gestión relacionados con los procesos de espacio de usuario. Por este motivo se le atribuye el nombre de &amp;quot;segundo kernel&amp;quot;, en el sentido de abarca, algunos dicen que demasiados, los aspectos de gestión de los recursos de los procesos en espacio de usuario.&lt;br /&gt;
&lt;br /&gt;
La filosofía clásica de Unix y Linux es &amp;quot;haz algo simple y hazlo bien&amp;quot;. Esta filosofía parece claramente contrapuesta a los objetivos de diseño y funcionamiento de systemd, de ahí la controversia generada.&lt;br /&gt;
&lt;br /&gt;
El concepto fundamental en systemd es el de &amp;#039;&amp;#039;&amp;#039;Unit&amp;#039;&amp;#039;&amp;#039;. Una Unit representa a un recurso administrable mediante systemd. La definición de Units se realiza mediante los &amp;#039;&amp;#039;&amp;#039;Unit Files&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Systemd units ==&lt;br /&gt;
&lt;br /&gt;
Con systemd se pueden gestionar muchos aspectos de configuración de un sistema, servicios, puntos de montaje, logs, estados del sistema, etc.&lt;br /&gt;
La gestión del sistema que realiza systemd está basada en el concepto de unit (unidad). Una unit es un objeto que representa un recurso del sistema manejado por systemd. Los metadatos, o configuración, de las units se realiza mediante unit files, los cuales permiten la definición y administración de los aspectos de cada unit. Cada tipo de unit viene identificada por el sufijo de su unit file. Por ejemplo para la gestión de servicios se utiliza el sufijo .service&lt;br /&gt;
&lt;br /&gt;
Uno de los aspectos fundamentales gestionados mediante units son los services (servicios) del sistema&lt;br /&gt;
&lt;br /&gt;
== Comandos de gestión básicos ==&lt;br /&gt;
&lt;br /&gt;
=== Gestión de inicio y parada de la máquina ===&lt;br /&gt;
&lt;br /&gt;
* Apagado de la máquina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl poweroff&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reinicio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reinicio en modo rescate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl rescue&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gestión básica de units ===&lt;br /&gt;
&lt;br /&gt;
El comando &amp;#039;&amp;#039;&amp;#039;systemctl&amp;#039;&amp;#039;&amp;#039; se usa para administrar las units. Permite gestionar muchos aspectos, entre los cuales podemos incluir los servicios. En los siguientes ejemplos se hará explícito el sufijo .service, que indica que se está trabajando con units de tipo servicio. Sin embargo systemd es lo suficientemente inteligente para que no sea necesario hacer explícto ese sufijo.&lt;br /&gt;
&lt;br /&gt;
Veamos algunos comandos de gestión básica de units&lt;br /&gt;
&lt;br /&gt;
* Conocer el estado de una unit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl status nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Muestra el estado de la unit (de tipo service). En este caso el estado del servidor web nginx&lt;br /&gt;
&lt;br /&gt;
* Indicar si el servicio correspondiente está activo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl is-active nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Indica si el servicio inicia durante el arranque&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl is-enabled nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Comprueba si el servicio ha tenido algún problema al iniciar&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl is-failed nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Listar las units del sistema&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl list-units&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mostraría todas las units del sistema activas. Con el modificador --all mostraría también aquellas no activas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl list-units-files&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mostraría toda la información de units instaladas en el sistema, a partir de sus unit files, incluso aquellas que no están cargadas en memoria&lt;br /&gt;
&lt;br /&gt;
* Mostrar todos los detalles de una unit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl show nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Ver los detalles de unit file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl cat nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Mostrar las dependencias de units&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl list-dependencies -all nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mostraría todas las dependencias de la unit de tipo service nginx.service. Con el modificador --all se usa de modo recursivo, es decir muestra a su vez las dependencias de las dependencias&lt;br /&gt;
&lt;br /&gt;
== Gestión de Unit Files ==&lt;br /&gt;
&lt;br /&gt;
Las units como ya vimos son el elemento fundamental de gestión de recursos en systemd. Cualquier aspecto administrado con systemd tendrá una unit asociada. Existen varios tipos de units:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;service&amp;#039;&amp;#039;&amp;#039;: gestión de servicios&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;socket&amp;#039;&amp;#039;&amp;#039;: gestión de los sockets utilizados por otras units (como servicios)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;device&amp;#039;&amp;#039;&amp;#039;: gestión de dispositivos&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;mount y automount&amp;#039;&amp;#039;&amp;#039;: gestión de puntos de montaje&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;swap&amp;#039;&amp;#039;&amp;#039;: gestión de espacios de intercambio&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;target&amp;#039;&amp;#039;&amp;#039;: gestión de targets&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;path&amp;#039;&amp;#039;&amp;#039;: utilizada para activación de units .service basada en eventos del sistema de archivos referenciado por el path&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;timer&amp;#039;&amp;#039;&amp;#039;: gestión de eventos, al estilo cron o at&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;snapshot&amp;#039;&amp;#039;&amp;#039;: gestión de instantáneas del sistema&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;slice&amp;#039;&amp;#039;&amp;#039;: gestión de recursos asociados a procesos usando cgroup&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;scope&amp;#039;&amp;#039;&amp;#039;: gestión de procesos organizados y creados por systemd&lt;br /&gt;
&lt;br /&gt;
Como puede verse pueden gestionarse muchos aspectos del sistema con systemd. Para definir el comportamiento y definición de cada uno de los recursos gestionados utilizamos los &amp;#039;&amp;#039;&amp;#039;unit files&amp;#039;&amp;#039;&amp;#039;, los cuales contienen directivas asociadas al tipo de unit. Los unit file tienen un nombre del tipo nombre_unit.tipo_unit, por ejemplo apache.service o multi-user.target.&lt;br /&gt;
&lt;br /&gt;
La sintaxis de definición de los unit files está basada en &amp;#039;&amp;#039;&amp;#039;secciones&amp;#039;&amp;#039;&amp;#039;, cada sección indica un aspecto, en el que se define, a través de &amp;#039;&amp;#039;&amp;#039;directivas&amp;#039;&amp;#039;&amp;#039;, todos los parámetros asociados a ese aspecto. Algunas secciones de unit files&lt;br /&gt;
&lt;br /&gt;
* [&amp;#039;&amp;#039;&amp;#039;Unit&amp;#039;&amp;#039;&amp;#039;]: Define directivas específicas de la definición de la unit&lt;br /&gt;
* [&amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039;]: Define directivas de gestión de units estableciendo relaciones en aspectos como, por ejemplo, la relación de la unit con targets asociados &lt;br /&gt;
* [&amp;#039;&amp;#039;&amp;#039;Service&amp;#039;&amp;#039;&amp;#039;]: Define directivas específicas de un service&lt;br /&gt;
* [&amp;#039;&amp;#039;&amp;#039;Socket&amp;#039;&amp;#039;&amp;#039;]: Define directivas de configuración de sockets asociados a services&lt;br /&gt;
* [&amp;#039;&amp;#039;&amp;#039;Mount&amp;#039;&amp;#039;&amp;#039;] y [&amp;#039;&amp;#039;&amp;#039;Automount&amp;#039;&amp;#039;&amp;#039;]: Define directivas para puntos de montaje&lt;br /&gt;
* [&amp;#039;&amp;#039;&amp;#039;Swap&amp;#039;&amp;#039;&amp;#039;]: Directivas que definen y habilitan espacios de intercambio para páginas de memoria virtual anónimas&lt;br /&gt;
* [&amp;#039;&amp;#039;&amp;#039;Timer&amp;#039;&amp;#039;&amp;#039;]: Definición y gestión de eventos temporales&lt;br /&gt;
* [&amp;#039;&amp;#039;&amp;#039;Path&amp;#039;&amp;#039;&amp;#039;]: Monitorización del sistema de archivos&lt;br /&gt;
* [&amp;#039;&amp;#039;&amp;#039;Slice&amp;#039;&amp;#039;&amp;#039;]: Gestión de asignación de recursos a los procesos&lt;br /&gt;
&lt;br /&gt;
Ejemplo de Unit file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=MyApp&lt;br /&gt;
After=docker.service&lt;br /&gt;
Requires=docker.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
TimeoutStartSec=0&lt;br /&gt;
ExecStartPre=-/usr/bin/docker kill busybox1&lt;br /&gt;
ExecStartPre=-/usr/bin/docker rm busybox1&lt;br /&gt;
ExecStartPre=/usr/bin/docker pull busybox&lt;br /&gt;
ExecStart=/usr/bin/docker run --name busybox1 busybox /bin/sh -c &amp;quot;while true; do echo Hello World; sleep 1; done&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El unit file anterior define una unit de tipo service.&lt;br /&gt;
&lt;br /&gt;
Podemos observar como algunas secciones son &amp;#039;&amp;#039;&amp;#039;genéricas&amp;#039;&amp;#039;&amp;#039;, como [&amp;#039;&amp;#039;&amp;#039;Unit&amp;#039;&amp;#039;&amp;#039;], que identifica aspectos generales de la unit, o [&amp;#039;&amp;#039;&amp;#039;Install&amp;#039;&amp;#039;&amp;#039;], que identifica, entre otras cosas, en que target se activa la unit. Otras secciones son específicas del tipo de unit concreto, como en el caso anterior [&amp;#039;&amp;#039;&amp;#039;Service&amp;#039;&amp;#039;&amp;#039;], en la que se definen los parámetros que afectan al servicio.&lt;br /&gt;
&lt;br /&gt;
=== Edición de unit files ===&lt;br /&gt;
&lt;br /&gt;
Para editar un unit file, es decir los metadatos de definición de una unit, podemos utilizar el comando systemctl edit.&lt;br /&gt;
&lt;br /&gt;
Veamos un ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl edit nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Permite añadir y sobreescribir configuraciones del servicio nginx. Con la opción --full se permite modificar el contenido completo del unit file. &lt;br /&gt;
&lt;br /&gt;
Tras modificar el unit file es necesario recargar el servicio&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl daemon-reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuando editamos del modo anterior un unit file se está creando un directorio en &amp;#039;&amp;#039;&amp;#039;/etc/systemd/system&amp;#039;&amp;#039;&amp;#039; con nombre &amp;#039;&amp;#039;&amp;#039;nombre_unit.d&amp;#039;&amp;#039;&amp;#039;, en el caso anterior nginx.service.d. Dentro de ese directorio se ubicará un snippet con nombre &amp;#039;&amp;#039;&amp;#039;override.conf&amp;#039;&amp;#039;&amp;#039; que aplicará cambios en la definición de la unit file original, de modo que las modificaciones del snippet tengan preferencia.&lt;br /&gt;
&lt;br /&gt;
Para editar la unit file completa podemos usar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl edit --full nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De este modo se creará un archivo en &amp;#039;&amp;#039;&amp;#039;/etc/systemd/sytem&amp;#039;&amp;#039;&amp;#039; con el nombre de la unit, copia modificada del unit original en &amp;#039;&amp;#039;&amp;#039;/lib/systemd/system&amp;#039;&amp;#039;&amp;#039; (ubicación original de los units cuando se instala el software) y que tomará preferencia sobre éste.&lt;br /&gt;
&lt;br /&gt;
Para eliminar los cambios introducidos en override.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -r /etc/systemd/system/nginx.service.d&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para eliminar la copia exacta del unit file creado con la opción --full de edit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rm /etc/systemd/system/nginx.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tras borrar es necesario recargar el proceso systemd para que tome las copias de los unit files correctas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl daemon-reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Procedimientos de administración con systemd ==&lt;br /&gt;
&lt;br /&gt;
=== [[ Gestión de targets (runlevels) ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Gestión de Servicios con systemd ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Gestión de Puntos de Montaje ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Gestión de timers ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Gestión de logs ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Monitorización del sistema de archivos con systemd ]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Gestión de recursos asignados a procesos ]] ===&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
=== Documentación man systemd ===&lt;br /&gt;
&lt;br /&gt;
https://www.freedesktop.org/software/systemd/man/index.html&lt;br /&gt;
&lt;br /&gt;
[[Linux|Volver]]&lt;br /&gt;
&lt;br /&gt;
JavierFP 17:44 11 dec 2017 (CET)&lt;/div&gt;</summary>
		<author><name>Javierfp</name></author>
	</entry>
</feed>