- Introduccióna systemd
- Comandos básicos de systemctl
- Control del estado del sistema
- Manejo de las unidades
- Iniciar una unidad de inmediato
- Detener una unidad de inmediato
- Reiniciar una unidad
- Recargar la configuración de una unidad
- Mostrar el estado de una unidad
- Comprobar si la unidad está activada
- Activar una unidad para que se inicie en el arranque
- Activa una unidad para iniciarse en el arranque y la inicia inmediatamente
- Desactivar una unidad del inicio automático del arranque
- Enmascarar una unidad
- Desenmascarar una unidad
- Muestra la página del manual asociada a una unidad
- Recargar la configuración de systemd
- Encendido y apagado del sistema
- Introducción a systend (Volver al índice General)
systemd está formado por un conjunto de demonios, bibliotecas y herramientas que permiten la administración y configuración del sistema e interactuar con el núcleo del sistema operativo Linux. Se puede utilizar como sistema de inicio de Linux, iniciándose como PID 1 (primer proceso que se ejecuta y es el proceso padre de todos los procesos hijos) e inicializando el resto del sistema.systemd nace para sustituir el sistema de inicio init heredado de los sistemas operativos estilo UNIX System V y Berkeley Software Distribution (BSD). Proporciona una notable capacidad de paralelización, utiliza la activación de socket y D-Bus para inicializar los servicios, permite el inicio de los demonios bajo demanda, seguimiento de los procesos con el uso de los grupos de control de Linux, mantiene los puntos de montaje y servicios de montaje automático e implementa un elaborado sistema de gestión de dependencias basado en un control lógico de los servicios. systemd es compatible con los scripts de inicio de SysV y LSB y funciona como un remplazo de sysvinit. Otras partes incluyen un demonios de registro, utilidades para controlar la configuración básica del sistema como el nombre del equipo (hostname), la fecha, la configuración regional, mantener una lista de usuarios registrados y contenedores y máquinas virtuales en ejecución, cuentas del sistema, directorios y configuraciones de tiempo de ejecución y demonios para administrar una configuración de red simple, sincronización horaria de la red, reenvío de registros y resolución de nombres, etc.
- Comandos básicos de systemctl (Volver al índice General)
El comando principal para controlar systemd es systemctl. La sintaxis básica de systemctl es:systemctl [OPTIONS...] COMMAND [NAME...]
Si queremos controlar remotamente una instancia de systemd, podemos utilizar las ordenes que a continuación veremos con el parámetro -H usuario@host. Con esto utilizaremos SSH para conectarnos a la instancia de systemd en otro equipo. Por ejemplo, el usuario mortadelo quiere conocer las unidades en ejecución en la máquina de nombre latia:
$ systemctl -H mortadelo@latia list-units
Cuando usamos systemctl, las unidades se corresponden con services (.service), mount points (.mount) devices (.device) o sockets (.socket). Por lo general, habrá que especificar el nombre completo de la unidad, incluyendo el sufijo. Por ejemplo:
$ sudo systemctl start sshd.socket
- Si se omite el sufijo, systemctl asumirá que es
.service
. Por ejemplo,netcfg
ynetcfg.service
se consideran equivalente. - Los puntos de montaje se traducirán automáticamente en la correspondiente unidad
.mount
. Por ejemplo, si especificamos/var
, será equivalente avar.mount
. - Para los dispositivos se traduce automáticamente en la correspondiente unidad
.device
. Por ejemplo, si especificamos/dev/sda2
, será equivalente adev-sda2.device
.
Algunos nombres de unidades contienen un signo
@
, por ejemplo,name@string.service
. Esto significa que son instancias de una unidad plantilla, cuyo nombre de archivo real no contiene la partestring
, por ejemplo,name@.service
.string
se denomina al identificador de instancia, y es similar a un argumento que se pasa a la unidad plantilla cuando es llamada con el comando systemctl. En el archivo de unidad se sustituirá la variable%i
con el identificador de instancia.Para ser más precisos, antes de probar inicializar una instancia de unidad de plantilla
name@.suffix
, systemd buscará una unidad con el nombre del archivoname@string.suffix
exacto, aunque por convención, tal conflicto ocurre raramente, es decir, la mayoría de los archivos de unidades que contienen un signo@
son plantillas. Además, si se llama a una unidad de plantilla sin un identificador de instancia, simplemente fallará, ya que el especificador%i
no puede ser sustituido.Véase $ man systemd.unit para más detalles.
Si utilizamos el entorno de escritorio KDE Plasma, podemos instalar el paquete kde-config-systemd como interfaz gráfica para systemctl. Para instalarlo ejecutaremos el comando:
$ sudo apt-get install kde-config-systemd
Después de instalarlo, el módulo se agregará a Administración del sistema en la aplicación Preferencias del sistema.
Nota: La Mayoría de los siguientes comandos funcionan si se especifican varias unidades.
Véase $ man systemctl para conocer todas las opciones.
- Si se omite el sufijo, systemctl asumirá que es
- Control del estado del sistema (Volver al índice General)
- Estado del sistema (Volver al índice General)
$ systemctl status
- Listar unidades en ejecución (Volver al índice General)
$ systemctl
o
$ systemctl list-units
- Listar unidades que han fallado (Volver al índice General)
$ systemctl --failed
- Listar unidades instaladas (Volver al índice General)
Los archivos de unidades se cargan desde varias ubicaciones. Para ver la lista completa de ubicaciones, ejecutaremos el siguiente comando:$ systemctl show --property=UnitPath UnitPath=/run/systemd/transient /etc/systemd/system /run/systemd/system /run/systemd/generator /lib/systemd/system /run/systemd/generator.late
Las principales ubicaciones, enumeradas desde la prioridad más baja a la más alta son:
/lib/systemd/system/
: unidades proporcionadas por los paquetes instalados./etc/systemd/system/
: unidades instaladas por el administrador del sistema.
Para listar las unidades instaladas ejecutaremos el siguiente comando:$ systemctl list-unit-files
- Estado del sistema (Volver al índice General)
- Iniciar una unidad de inmediato (Volver al índice General)
$ sudo systemctl start unidad
Por ejemplo, iniciar el servicio
ssh
:$ sudo systemctl start ssh.socket
- Detener una unidad de inmediato (Volver al índice General)
$ sudo systemctl stop unidad
Por ejemplo, detener el servicio
ssh
:$ sudo systemctl stop ssh.socket
- Reiniciar una unidad (Volver al índice General)
$ sudo systemctl restart unidad
Por ejemplo, reiniciar el servicio
ssh
:$ sudo systemctl restart ssh.socket
- Recargar la configuración de una unidad (Volver al índice General)
$ sudo systemctl reload unidad
Por ejemplo, recargar la configuración del servicio
Apache
:$ sudo systemctl reload apache2.service
- Mostrar el estado de una unidad (Volver al índice General)
Este comando mostrará el estado se esté o no ejecutando:$ systemctl status unidad
Por ejemplo, mostrar el estado del servicio
ssh
:$ systemctl status ssh.socket ● ssh.socket - OpenBSD Secure Shell server socket Loaded: loaded (/lib/systemd/system/ssh.socket; disabled; vendor preset: enabled) Active: active (listening) since Thu 2019-02-28 19:11:58 CET; 16min ago Listen: [::]:22 (Stream) Accepted: 0; Connected: 0 feb 28 19:11:58 deb9 systemd[1]: Closed OpenBSD Secure Shell server socket. feb 28 19:11:58 deb9 systemd[1]: Stopping OpenBSD Secure Shell server socket. feb 28 19:11:58 deb9 systemd[1]: Listening on OpenBSD Secure Shell server socket.
- Comprobar si la unidad está activada (Volver al índice General)
$ systemctl is-enabled unidad
Por ejemplo, comprobar si el servicio
ssh
está activado:$ systemctl is-enabled ssh.socket disabled
- Activar una unidad para que se inicie en el arranque (Volver al índice General)
$ sudo systemctl enable unidad
Por ejemplo, activar el servicio
ssh
:$ sudo systemctl enable ssh.socket Created symlink /etc/systemd/system/sockets.target.wants/ssh.socket → /lib/systemd/system/ssh.socket.
Comprobamos de nuevo si el servicio
ssh
está activado:$ systemctl is-enabled ssh.socket enabled
- Activa una unidad para que se inicie en el arranque y la inicia inmediatamente (Volver al índice General)
$ sudo systemctl enable --now unidad
Por ejemplo, activar e iniciar el servicio
ssh
:$ sudo systemctl enable --now ssh.socket
- Desactivar una unidad del inicio automático del arranque (Volver al índice General)
$ sudo systemctl disable unidad
Por ejemplo, desactivar el servicio
ssh
:$ sudo systemctl disable ssh.socket
- Enmascarar una unidad (Volver al índice General)
Este comando hace que sea imposible iniciar la unidad, tanto de forma manual como de dependencia, lo que hace que el enmascaramiento sea peligroso:$ sudo systemctl mask unidad
Por ejemplo, enmascarar el servicio
ssh
:$ sudo systemctl mask ssh.socket Created symlink /etc/systemd/system/ssh.socket → /dev/null.
- Desenmascarar una unidad (Volver al índice General)
$ sudo systemctl unmask unidad
Por ejemplo, desenmascarar el servicio
ssh
:$ sudo systemctl unmask ssh.socket Removed /etc/systemd/system/ssh.socket.
- Muestra la página del manual asociada a una unidad (Volver al índice General)
Este comando mostrará la página del manual si la unidad tiene una asociada:$ systemctl help unidad
Por ejemplo, mostrar la página del manual del servicio
cups
:$ systemctl help cups.service
- Recargar la configuración de systemd (Volver al índice General)
Este comando recarga la configuración de systemd buscando unidades nuevas o modificadas. Con el uso de este comando no se le pide a las unidades modificadas que vuelvan a cargar sus configuraciones. Para cargar su configuración, véase reload.$ sudo systemctl daemon-reload
- Encendido y apagado del sistema (Volver al índice General)
polkit es necesario para gestionar la energía. En Debian 9 Stretch el paquete a instalar espolicyKit-1
:$ sudo apt-get install PolicyKit-1
Si nos encontramos en una sesión local de systemd-logind y ninguna otra sesión está activa, las órdenes siguientes funcionarán sin requerir privilegios de root. Si no es así, por ejemplo, debido a que otro usuario ha iniciado otra sesión tty, systemd requerirá la contraseña de root.
- Reiniciar el sistema (Volver al índice General)
El siguiente comando apaga y reinicia el sistema:$ systemctl reboot
- Apagar el sistema (Volver al índice General)
$ systemctl poweroff
- Suspender el sistema (Volver al índice General)
$ systemctl suspend
- Hibernar el sistema (Volver al índice General)
$ systemctl hibernate
- Suspensión combinada (Volver al índice General)
El siguiente comando pone el sistema en un estado de reposo híbrido (hybrid-sleep) o suspensión combinada (suspend-to-both):$ systemctl hybrid-sleep
- Reiniciar el sistema (Volver al índice General)
Manejo de las unidades (Volver al índice General)
Enlaces externos (Volver al índice General)
- systemd (Español)
Este artículo es una traducción de Systemd, revisada por última vez el 2018-12-09. Si advierte que la versión inglesa ha cambiado, puede ayudar a actualizar la traducción, bien por usted mismo o bien avisando al equipo de traducción. - systemd System and Service Manager
Sitio Oficial. - Wikipedia: systemd
- degian.org – manpages: SYSTEMD.UNIT(5)
- degian.org – manpages: SYSTEMCTL(1)
- systemd for Administrators, Part X
Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
Configuración de privacidad y de cookies.
Muy bueno
Muchísimas gracias por tu aporte, tenia un problema con el inicio de samba y tras leer esto reparado en 1 minuto y eso que soy bastante novato.
J. Carlos
Gracias a ti, oworty por visitar ZeppelinuX