Systemd
systemd es un sistema de inicio moderno al estilo de SysV y un reemplazo de rc para sistemas Linux. Está soportado por Gentoo como un sistema de inicio alternativo.
Switching init systems is a non trivial operation that has implications for how the system is configured, and sometimes for what software can be installed or not. Generally, an init system will be chosen at installation time (i.e. by downloading either a systemd or an openrc stage3 tarball), and only changed if necessary. In true Gentoo style, in addition to systemd and OpenRC, several init systems are supported.
If systemd is being unwantedly pulled in as a dependency, see Gentoo without systemd.
Instalación
If updating from <=sys-apps/systemd-203 check the upgrade sub-article.
The core around which all distributions are built is the Linux kernel. It is the layer between the user programs and the system hardware. Gentoo provides its users several possible kernel sources. A full listing with description is available at the Kernel overview page.
For amd64-based systems, Gentoo recommends the sys-kernel/gentoo-sources package.
Choose an appropriate kernel source and install it using emerge:
root #
emerge --ask sys-kernel/gentoo-sources
El núcleo de línux
systemd hace uso de muchas características modernas del núcleo de Línux. Actualmente, la versión más antigua que los soporta es la 2.6.39. En versiones recientes de sys-kernel/gentoo-sources, hay una forma eficaz de seleccionar las opciones del núcleo, tanto obligatorias como opcionales para systemd (leer la configuración del núcleo para obtener más información):
Gentoo Linux --->
Support for init systems, system and service managers --->
[*] systemd
Para configurar las opciones del núcleo manualmente (que es la única opción cuando no utilice sys-kernel/gentoo-sources), se requieren o recomiendan las siguientes opciones de configuración del núcleo:
'"`UNIQ--pre-00000006-QINU`"'
'"`UNIQ--pre-00000009-QINU`"'
Para un sistema UEFI active también las siguientes opciones:
'"`UNIQ--pre-0000000C-QINU`"'
Si el sistema está utilizando el planificador BFQ, se recomienda, por los desarrolladores de BFQ, activar «BFQ hierarchical scheduling support» bajo «Enable the block layer -> IO Schedulers».
IO Schedulers --->
<*> BFQ I/O scheduler
[*] BFQ hierarchical scheduling support
Para obtener una lista actualizada, consulte la sección «REQUIREMENTS» en el archivo README.
Asegurarse de que /usr está presente en el arranque
Para una configuración separada de /usr, utilice un initramfs para que monte /usr antes de iniciar systemd. Por ahora, esto implica que se puede utilizar sys-kernel/dracut o sys-kernel/genkernel-next hasta que el apoyo a /usr esté disponible en sys-kernel/genkernel. Dele un tiempo para realizar la migración:
root #
emerge --ask sys-kernel/genkernel
or
root #
emerge --ask sys-kernel/dracut
Cuando utilice dracut, active el módulo usrmount, si no se ha activado por sí mismo al montar automáticamente /usr.
# Módulos Dracut para añadir a los valores por defecto
add_dracutmodules+="usrmount"
Cuando se utilice genkernel-next, antes de recompilar el núcleo, asegúrese de ajustar la variable UDEV en el archivo de configuración de genkernel a yes
. Esto colocará /usr dentro de initramfs:
# Utilice udev en lugar de mdev como el administrador de dispositivos por defecto para initramfs.
# Si utiliza systemd y, quizás también con LVM, entonces esta opción debe estar abierta.
UDEV="yes"
root #
genkernel --install all
Consulte la Guía de initramfs para conocer otras alternativas.
Utililizar LVM y initramfs
Cuando se utiliza sys-fs/lvm2 y el sistema se arranca usando un initramfs, dicho initramfs tendrá que ser creado con sys-kernel/genkernel-next, ejecutando:
root #
genkernel --lvm <target>
<target>
es, o bien initramfs
, o bien algún otro objetivo de genkernel que implique la creación de un initramfs. Para obtener más información, mire la salida de >genkernel --help:
user $
genkernel --help
Ajustes USE
USE flags for sys-apps/systemd System and service manager for Linux
+dns-over-tls
|
Enable DNS-over-TLS support |
+gcrypt
|
Enable use of dev-libs/libgcrypt for various features |
+kernel-install
|
Enable kernel-install |
+kmod
|
Enable kernel module loading via sys-apps/kmod |
+lz4
|
Enable lz4 compression for the journal |
+openssl
|
Enable use of dev-libs/openssl for various features |
+resolvconf
|
Install resolvconf symlink for systemd-resolve |
+seccomp
|
Enable seccomp (secure computing mode) to perform system call filtering at runtime to increase security of programs |
+sysv-utils
|
Install sysvinit compatibility symlinks and manpages for init, telinit, halt, poweroff, reboot, runlevel, and shutdown |
+zstd
|
Enable support for ZSTD compression |
acl
|
Add support for Access Control Lists |
apparmor
|
Enable support for the AppArmor application security system |
audit
|
Enable support for sys-process/audit |
boot
|
Enable EFI boot manager and stub loader |
bpf
|
Enable BPF support for sandboxing and firewalling. |
cgroup-hybrid
|
Default to hybrid (legacy) cgroup hierarchy instead of unified (modern). |
cryptsetup
|
Enable cryptsetup tools (includes unit generator for crypttab) |
curl
|
Enable support for uploading journals |
elfutils
|
Enable coredump stacktraces in the journal |
fido2
|
Enable FIDO2 support |
gnutls
|
Prefer net-libs/gnutls as SSL/TLS provider (ineffective with USE=-ssl) |
homed
|
Enable portable home directories |
http
|
Enable embedded HTTP server in journald |
idn
|
Enable support for Internationalized Domain Names |
importd
|
Enable import daemon |
iptables
|
Use libiptc from net-firewall/iptables for NAT support in systemd-networkd; this is used only if the running kernel does not support nftables |
lzma
|
Support for LZMA compression algorithm |
pam
|
Add support for PAM (Pluggable Authentication Modules) - DANGEROUS to arbitrarily flip |
pcre
|
Add support for Perl Compatible Regular Expressions |
pkcs11
|
Enable PKCS#11 support for cryptsetup and homed |
policykit
|
Enable PolicyKit (polkit) authentication support |
pwquality
|
Enable password quality checking in homed |
qrcode
|
Enable qrcode output support in journal |
secureboot
|
Automatically sign efi executables using user specified key |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
split-usr
|
Enable behavior to support maintaining /bin, /lib*, /sbin and /usr/sbin separately from /usr/bin and /usr/lib* |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
tpm
|
Enable TPM support |
ukify
|
Enable systemd-ukify |
vanilla
|
Disable Gentoo-specific behavior and compatibility quirks |
xkb
|
Depend on x11-libs/libxkbcommon to allow logind to control the X11 keymap |
Perfil
Active el parámetro global de USE systemd
(en make.conf). Al mismo tiempo, el parámetro USE consolekit
debe ser desactivado para evitar conflictos con el servicio systemd-logind. También es posible cambiar a un subperfil systemd para utilizar parámetros USE por defecto más coherentes, en cuyo caso no es necesario cambiar make.conf:
root #
eselect profile list
Finalmente, actualice el sistema con el nuevo perfil:
root #
emerge -avDN @world
Once this command is complete, it is important follow the Configuration steps.
Problemas de dependencias
Cuando se reemplaza OpenRC por systemd, se pueden producir algunos problemas de dependencias.
If sys-apps/sysvinit blocks sys-apps/systemd, try disabling the netifrc
USE flag for sys-apps/openrc. Then rebuild OpenRC temporarily to break the dependency with net-misc/netifrc followed by a depclean operation:
root #
emerge --oneshot sys-apps/openrc
root #
emerge --ask --depclean
If sys-apps/sysvinit is still blocking sys-apps/systemd, make sure it and sys-apps/openrc are not contained in the world file:
root #
emerge --deselect sys-apps/openrc sys-apps/sysvinit
Cuando se producen problemas de dependencias (como sys-fs/udev bloqueando sys-apps/systemd), sys-fs/udev podría ser que estuviera registrado en el archivo word. Trate de resolver esto desmarcándolo:
root #
emerge --deselect sys-fs/udev
sys-apps/systemd contiene udev. Una vez instalado, sys-fs/udev puede eliminarse debido a que systemd será el proveedor del requisito virtual/udev.
If the @system set provides sys-fs/eudev, virtual/udev and virtual/libudev may be preventing systemd. To make portage resolve the problem, after setting the USE flag, try to reinstall the virtuals:
root #
emerge --oneshot virtual/udev virtual/libudev
Cargador de arranque
This is no longer necessary with sys-apps/systemd when the
sysv-utils
USE is enabled. This defaults to on with at least version 239 in GentooPara poder arrancar systemd, hay que cambiar el init que el núcleo (o initramfs) utiliza como ejecutable.
Los servicios que se establecen para el gestor de servicios previo no se inician automáticamente (en el otro). Esto se debe a que el sistema ha cambiado a un gestor de servicios diferente. Con el fin de obtener de nuevo la funcionalidad de dichos servicios, como la conexión de redes o el gestor de inicio de sesión, estos servicios tendrán que ser activados nuevamente. Más información sobre esto se proporciona más adelante en la sección «Servicios» de este artículo.
Si la migración produce un estado inoperativo, siempre es posible arrancar de nuevo con el gestor de servicios por defecto (OpenRC) desandando los pasos para cambiar el init. Esto permite un retorno seguro y una manera de conseguir solucionar el problema a través de la sección «Solución de problemas» del final de este artículo.
Las siguientes subsecciones documentan cómo intercambiar el init en uno de los gestores de arranque o en el núcleo.
GRUB Legacy (0.x)
El argumento init=/usr/lib/systemd/systemd
debe ser añadido a la línea de órdenes del núcleo. Un extracto de ejemplo de grub.conf se vería así:
title=Gentoo con systemd
root (hd0,0)
kernel /vmlinuz root=/dev/sda2 init=/usr/lib/systemd/systemd
Si a pesar de esto el sistema arranca usando OpenRC, pruebe utilizando real_init
en lugar de init
.
GRUB 2
Cuando se utiliza grub-mkconfig, añada la opción init a GRUB_CMDLINE_LINUX:
Esto no es necesario cuando se utiliza un initramfs generado por dracut con systemd en su interior, dado que initramfs ya inicia systemd.
# Añadir parámetros a la línea de órdenes del núcleo de línux
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
Cuando el archivo de configuración de GRUB2 esté hecho a mano (solo expertos), añada el parámetro init=
a la orden linux
o linux16
.
linux /vmlinuz-3.10.9 root=UUID=508868e4-54c6-4e6b-84b0-b3b28b1656b6 init=/usr/lib/systemd/systemd
YABOOT
Yaboot is a boot loader for PowerPC-based hardware running Linux, particularly New World ROM Macintosh systems.
The init=/lib/systemd/systemd
argument should be added directly after the kernel command-line. An example from yaboot.conf:
image=/vmlinux
append="init=/lib/systemd/systemd"
label=Linux
read-only
initrd=/initramfs
initrd-size=8192
For the changes to take effect, the ybin command must be run each time the yaboot.conf file is modified.
En la configuración del núcleo
La configuración de init también puede ser introducida en la configuración del núcleo. Consulte Processor type and features -> Built-in kernel command line. Tenga en cuenta que esta técnica funciona tanto para GRUB como para GRUB2.
Upgrades
systemd has the ability to update in-place on a running system (no reboot necessary). After an upgrade to systemd has emerged, run the following command:
root #
systemctl daemon-reexec
Configuración
systemd soporta algunos archivos de configuración para ajustar los detalles más básicos del sistema.
After installing systemd, run the following:
root #
systemd-machine-id-setup
root #
systemd-firstboot --prompt
root #
systemctl preset-all
If systemd-firstboot is not ran, it will automatically run on next boot. However, it interrupts the normal boot process, preventing access to the system from users who don't have access to the interactive console - like accessing a server via SSH.
Si bien algunos parámetros de configuración del sistema se pueden actualizar mediante la modificación de los archivos de configuración apropiados, la mayoría de los ajustes se gestionan mediante utilidades que exigen que systemd esté corriendo. En este último caso, es seguro reiniciar el ordenador con systemd y utilizar las utilidades hostnamectl, localectl y timedatectl para hacer los ajustes que se necesiten.
Identificador de la máquina (Machine ID)
Crear un identificador de la máquina para que el journaling funcione. Esto se puede conseguir mediante la siguiente orden:
root #
systemd-machine-id-setup
The systemd-machine-id-setup command also has an impact on the
systemd-networkd
service. If this command is not run the system may exhibit strange behavior like network interfaces not coming up or network addresses not being applied.Nombre del equipo
Para establecer el nombre del equipo, cree/edite el archivo /etc/hostname y simplemente ponga el nombre deseado para el equipo.
Cuando arranca con systemd, dispone de una herramienta llamada hostnamectl que permite editar /etc/hostname y /etc/machine-info. Para cambiar el nombre del equipo, ejecute:
root #
hostnamectl set-hostname <NOMBREDELEQUIPO>
Remítase a man hostnamectl para obtener más información.
Idioma del sistema
Por lo general, los locales migrarán correctamente desde OpenRC al instalar systemd. Cuando sea necesario, el idioma se puede ajustar en /etc/locale.conf, según las instrucciones dadas por el manual de Gentoo:
LANG="es_ES.utf8"
Una vez arrancado el sistema con systemd, la herramienta localectl se puede utilizar para establecer la configuración regional y el mapa de teclas de la consola o de X11. Para cambiar la configuración regional del sistema, ejecute la siguiente orden:
root #
localectl set-locale LANG=<LOCALE>
Para cambiar el mapa de teclado de la consola virtual:
root #
localectl set-keymap <KEYMAP>
Y, por último, para configurar la distribución del teclado en X11:
root #
localectl set-x11-keymap <LAYOUT>
Si es necesario el modelo, variante y opciones pueden especificarse así:
root #
localectl set-x11-keymap <LAYOUT> <MODEL> <VARIANT> <OPTIONS>
After doing any of the above, update the environment so the changes will take effect:
root #
env-update && source /etc/profile
Fecha y hora
La fecha y hora del sistema se pueden ajustar mediante la utilidad timedatectl. Esto también permitirá a los usuarios configurar la sincronización horaria del sistema sin necesidad de depender de net-misc/ntp o de otros proveedores que implementa el propio systemd.
Para aprender a utilizar timedatectl solo tiene que ejecutar:
root #
timedatectl --help
Cargar módulos automáticamente
La carga automática de un módulo está configurada en un archivo diferente, o mejor dicho, en un directorio de archivos. Los archivos de configuración se almacenan en el directorio /etc/modules-load.d. Al arranque, se carga cada archivo que contiene una lista de módulos. El formato del archivo es una lista de módulos separados por saltos de línea, y dicho archivo puede tener cualquier nombre, siempre y cuando termine en .conf. La carga del módulo se puede separar por programa, servicio o cualquier forma que se adapte a sus preferencias personales. Un ejemplo para los módulos de virtualbox.conf se enumeran a continuación:
vboxdrv
vboxnetflt
vboxnetadp
vboxpci
Automatic mounting of partitions at boot
Systemd is capable of automatically mounting various partitions to standardized location via systemd-gpt-auto-generator. This makes it possible to boot and automatically mount essential partitions without an fstab and without a root= paramter on the kernel command line. To use this capability, first systemd must be included in the initramfs, this is the case by default for initramfs images generated with Dracut on systems with systemd installed. And second, each partition must have the correct Partition Type GUID. A list of the most important GUIDs can be found in the systemd-gpt-auto-generator manual, the full list can be found on wikipedia.
To list the current Partition Type GUID of your partitions:
root #
lsblk -o NAME,LABEL,PARTLABEL,PARTTYPE,PARTTYPENAME,MOUNTPOINT
systemd-gpt-auto-generator can auto-mount partitions at the following locations, note that the correct GUID depends on the systems CPU architecture:
- / SD_GPT_ROOT_....
- /boot/ SD_GPT_ESP if no /efi/ and no XBOOTLDR partition, otherwise SD_GPT_XBOOTLDR
- /efi/ SD_GPT_ESP if /efi/ is present on the root, if not then ESP is at /boot/
- /home/ SD_GPT_HOME
- /srv/ SD_GPT_SRV
- /usr/ SD_GPT_USR_....
- /var/ SD_GPT_VAR
- /var/tmp/ SD_GPT_TMP
- Swap SD_GPT_SWAP
Below is an example of the most basic partition layout consisting of one EFI System Partition and one x86-64 root partition.
root #
lsblk -o NAME,LABEL,PARTLABEL,PARTTYPE,PARTTYPENAME,MOUNTPOINT
NAME LABEL PARTLABEL PARTTYPE PARTTYPENAME MOUNTPOINT nvme1n1 ├─nvme1n1p1 ESP EFI System Partition c12a7328-f81f-11d2-ba4b-00a0c93ec93b EFI System /boot └─nvme1n1p2 Gentoo Gentoo 4f68bce3-e8cd-4db1-96e7-fbcaf984b709 Linux root (x86-64) /
The PARTTYPE for an EFI System Partition is c12a7328-f81f-11d2-ba4b-00a0c93ec93b, it will be mounted at either /efi/ or /boot/ depending on which of these mount points is available and on if there is also an Extended Boot Loader Partition (PARTTYPE=bc13c2ff-59e6-4262-a352-b275fd6f7172) present on this disk. The PARTTYPE for an x86-64 root parition is 4f68bce3-e8cd-4db1-96e7-fbcaf984b709.
If the Partition Type GUID is not correct it can be changed without data loss using a partitioning tool such as fdisk. Note that the system must be offline to change the patition types! A system rescue image, or secondary operating system, must be used to complete the following steps.
Open the disk with the to be changed partition types in fdisk, in this exameple /dev/nvme1n1 is used:
root #
fdisk /dev/nvme1n1
Welcome to fdisk (util-linux 2.39.3). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help):
List the current partition layout with the p command:
Command (m for help):
p
Disk /dev/nvme1n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors Disk model: Samsung SSD 970 EVO Plus 2TB Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: B25D5B33-4A10-F940-826C-3CB24ADC7D86 Device Start End Sectors Size Type /dev/nvme1n1p1 2048 1052671 1050624 513M EFI System /dev/nvme1n1p2 1052672 3907028991 3905976320 1.8T Linux root (x86-64)
Change the Partition Type GUID of any partition with the t command, followed by the number of the partition to be changed, and finally the alias for the desired partition type:
Command (m for help):
t
Partition number (1,2, default 2): 2 Partition type or alias (type L to list all): L Partition type or alias (type L to list all): 23 Changed type of partition 'Linux root (x86-64)' to 'Linux root (x86-64)'.
Repeat the above steps for any additional partitions of which the Partition Type GUID should be changed. Once completed, save the changes with the w command:
Command (m for help):
w
systemd-gpt-auto-generator will only auto-mount partitions that reside on the same disk as the EFI System Partition that the system is being booted from.
Some tools may become confused if there is no root= parameter on the kernel command line at all. To placate such tools add
root=/dev/gpt-auto-root
to the kernel command line. This trick is also usefull if a swapfile on the root partition is used instead of a swap partition for hibernation, i.e. one may specify the resume target on the kernel command line as resume=/dev/gpt-auto-root resume_offset=xxxxxxxxx
.Conexión de red
systemd is compatible with various network management tools.
systemd-networkd
See the systemd/systemd-networkd article for details on setting up a wired network on systemd systems.
systemd-resolved
See the systemd/systemd-resolved article for details on setting up address name resolution (DNS) on systemd systems.
NetworkManager
A menudo NetworkManager se utiliza para configurar los ajustes de red. Para ello, solo tiene que ejecutar la siguiente orden cuando se utiliza un escritorio corriendo con X11:
root #
nm-connection-editor
Si ese no es el caso y la red necesita ser configurada desde consola, dele a nmcli una oportunidad, o siga un proceso de configuración asistida por nmtui:
root #
nmtui
nmtui es una interfaz curses que guiará al usuario en el proceso de configuración mientras se ejecuta en modo consola.
For more details see the dedicated article.
Manejar los archivos de registo
systemd tiene su propia manera de manejar los archivos de registro sin necesidad de depender de ningún sistema de registro externo (como app-admin/syslog-ng or app-admin/rsyslog). Los mensajes ahora se pueden leer con journalctl. Aún así, systemd puede ser configurado para utilizar una herramienta externa de su preferencia para el manejo de los registros. Vea man journald.conf para aprender acerca de cómo configurar journald para que se ajuste a sus necesidades personales.
If desired, the logging service be configured to pass log messages to external logging utilities such as sysklog or syslog-ng. See man journald.conf to learn how to configure the systemd-journald service to suit situational needs.
systemd's integrated logging service writes log messages in a secure, binary format. The logs are read by using the journalctl command, which is a separate executable from the systemd-journald logging service.
{{{1}}}
Algunas opciones comunes de journalctl:
Opciones de línea de órdenes para journalctl | Resultado |
---|---|
journalctl sin opciones | Muestra todas las entradas del registro comenzando por la más antigua. |
-b , --boot |
Muestra todas las entradas del registro en este inicio del sistema. |
-r , --reverse |
En primer lugar la entrada más actual. |
-f , --follow |
Muestra las últimas entradas y las nuevas conforme se van produciendo. |
-p , --priority= |
Especifica la (mínema) prioridad para mostrar los mensajes, se puede elegir entre: "emerg" (0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7). |
--since= , --until= |
Restringir entradas por su hora. Acepta el formato "YYYY-MM-DD hh:mm:ss" o las cadenas de caracteres "yesterday", "today" y "tomorrow" (ayer, hoy y mañana). |
-n , --lines= |
Restringe a un número de entradas. |
-k , --dmesg |
Restringe a los mensajes del núcleo. |
-u , --unit= |
Restringe a una determinada unidad de Systemd. |
| journalctl without options || Show all log entries, starting with earliest. |-
| -b
, --boot
|| Show all log entries from the current boot.
|-
| -r
, --reverse
|| Show the newest log entries first (reverse chronological order).
|-
| -f
, --follow
|| Show the last few entries and display new log entries as they're being produced. This is similar to running tail -f in text logging utilities.
|-
| -p
, --priority=
|| Specify (minimum) priority to display messages, with a choice from: "emerg" (0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7).
|-
| -S
, --since=
, -U
, --until=
|| Restrict entries by time. Accepts the format "YYYY-MM-DD hh:mm:ss" or the strings "yesterday", "today" and "tomorrow".
|-
| -n
, --lines=
|| Restrict to a number of entries.
|-
| -k
, --dmesg
|| Restrict to kernel messages.
|-
| -u
, --unit=
|| Restrict to a certain systemd unit.
|-
| --system
|| View system service and kernel logs. By default, this is only possible as the root user. See man journalctl for how to grant standard users the ability to read the system journal.
|-
|}
Para obtener más información y muchas más opciones, eche un vistazo a man journalctl.
/tmp está ahora en tmpfs
A menos que algún otro sistema de archivos esté montado de forma explícita para /tmp en /etc/fstab, systemd montará /tmp como tmpfs. Eso significa que se vacía en cada arranque y su tamaño se limitará a 50% del tamaño de la memoria RAM del sistema. Para saber por qué este se comporta así y cómo modificarlo, eche un vistazo a Sistemas de archivos API.
Configurar la verbosidad de proceso de arranque
Al migrar a systemd lo usuarios suelen notar diferencias en cuanto a la salida verbosa del proceso de arranque:
- La opción de arranque
quiet
no solo influye en la salida de información sobre el núcleo, sino también sobre la del propio systemd. No obstante, mientras se configura systemd para la máquina, la opción de monstrar los errores, que fue descartada, podría volver a surgir. Por tanto, después de configurar systemd, añada de nuevo la opción «quiet» para conseguir una salida concisa de información del arranque (y, por ende, un arranque más rápido). - Incluso pasando la opción de arranque
quiet
, systemd todavía se puede configurar para mostrar su estado poniendo el parámetrosystemd.show_status=1
. - Cuando no utilice la opción de arranque
quiet
, algunos mensajes podrían sobrescribir las consolas. Esto es causado por la configuración del núcleo (ver man 5 proc y buscar /proc/sys/kernel/printk). Para ajustarlo pase el parámetro de arranqueloglevel=5
al núcleo (y actualice el valor de acuerdo a su preferencia, por ejemplo, establezca un valor más bajo, como 1).
Usage
Converting traditional home directories to systemd homed
See the systemd-homed subarticle.
Servicios
En algún momento el sistema tendrá que ser reiniciado para que systemd se ponga marcha (en modo de sistema). Procure leer todo el presente documento para asegurarse de que systemd se configura tan completamente como sea posible antes de reiniciar (el equipo). Tenga en cuenta que, así como la utilidad journalctl funciona con systemd mientras este no está ejecutándose, por el contrario la utilidad systemctl no hará nada útil sin que systemd esté ejecutándose. Complete la configuración de los servicios (activación e iniciación de los servicios) después de entrar en el sistema que ejecuta systemd.
Preset services
Most services are disabled when systemd is first installed. A "preset" file is provided, and may be used to enable a reasonable set of default services.
root #
systemctl preset-all
Servicios OpenRC
Aunque originalmente systemd intentó dar soporte a los antiguos scripts de init.d en ejecución, este apoyo no se adapta bien para un RC basado en dependencias como OpenRC y, por lo tanto, se desactiva por completo en Gentoo. OpenRC ofrece medidas adicionales para garantizar que los scripts de init.d no se ejecuten cuando no se utilice OpenRC para arrancar el sistema (de lo contrario los resultados serían impredecibles).
Listar servicios disponibles
Todas las unidades de servicios disponibles se pueden enumerar usando el argumento list-units
con systemctl:
root #
systemctl list-units
UNIT LOAD ACTIVE SUB DESCRIPTION boot.automount loaded active waiting EFI System Partition Automount proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point ...
Los siguientes sufijos de archivos son de interés:
Sufijo | Descripción |
---|---|
.service | archivos de servicio normal (por ejemplo, aquellos que se limitan a ejecutar un demonio directamente), |
.socket | servicios que escuchan socket (como inetd), |
.path | sistema de archivos que desencadenan servicios (servicios que se ejecutan cuando cambian los archivos, etc.). |
| .service | Plain service files (e.g. ones just running a daemon directly). |-
| .socket | Socket listeners (much like inetd). |-
| .path | Filesystem triggers for services (running services when files change, etc.). |-
|}
Por otro lado, la herramienta systemctl se puede utilizar para enumerar todos los servicios (incluidos los implícitos):
root #
systemctl --all --full
Y, por último, para comprobar los servicios que fallaron al iniciar:
root #
systemctl --failed
Activar, desactivar, iniciar y detener servicios
La forma habitual de activar un servicio es usando la siguiente orden:
root #
systemctl enable foo.service
Los servicios pueden ser igualmente desactivados:
root #
systemctl disable foo.service
Estas órdenes activan los servicios utilizando el nombre por defecto en el target por defecto (ambos especificados en la sección «Install» del archivo de servicio). Sin embargo, algunos servicios, o bien no proporcionan esta información, o bien los usuarios prefieren tener otro nombre/target.
Tenga en cuenta que estas órdenes solo activan o desactivan el servicio en cuestión cuando el sistema se inicie de nuevo en un próximo arranque; para iniciar el servicio inmediatamente (si necesidad de reinicio del sistema), utilice:
root #
systemctl start foo.service
Los servicios también pueden ser detenidos:
root #
systemctl stop foo.service
Services implementing ExecReload=
can be commanded to reload their configuration without restarting itself:
root #
systemctl reload foo.service
Instalar archivos de unidad personalizados
Los archivos de unidad personalizados se pueden colocar en /etc/systemd/system, donde van a ser reconocidos después de ejecutar systemctl daemon-reload:
root #
systemctl daemon-reload
/usr/lib/systemd/system está reservado para los archivos de servicios instalados por el gestor de paquetes.
Personalizar archivos de unidad
Cuando solo se necesitan cambios menores en una unidad, no hay necesidad de crear una copia completa del archivo de unidad original en /etc/systemd/system. Sobrescribir la configuración en una unidad proporcionada por el gestor de paquetes se puede lograr mediante archivos colocados en un directorio llamado
- .d precedido con el nombre de la unidad original (por ejemplo apache2.d) en /etc/systemd/system/.
Both the drop-in directory and config file can be created using the systemctl edit utility or manually.
The editing utility can be invoked as:
root #
systemctl edit apache2.service
[Service]
MemoryLimit=1G
Se necesita una recarga de los servicios para informar a systemd de los cambios:
root #
systemctl daemon-reload
A continuación, es necesario reiniciar el servicio para aplicar los cambios:
root #
systemctl restart apache2
Compruebe que la propiedad cambiada se ha aplicado al servicio:
root #
systemctl show --property=MemoryLimit apache2
MemoryLimit=1074000000
{{{1}}}
Activar un servicio bajo un nombre personalizado
Cuando el nombre proporcionado por «Alias» en la sección «[Install]» de la unidad no cumple con sus expectativas y proporciona un nuevo valor permanente para este a través de una personalización que no es el valor deseado, se puede crear manualmente un enlace simbólico en /etc/systemd/system/*.wants/ (que apunte a otro servicio/target). El nombre del directorio
- .wants puede especificar un target u otro servicio que dependerá de otro nuevo.
Por ejemplo, para instalar el servicio mysqld.service como db.service en el target multi-user.target:
root #
ln -s /usr/lib/systemd/system/mysqld.service /etc/systemd/system/multi-user.target.wants/db.service
Para desactivar el servicio, basta con retirar el enlace simbólico:
root #
unlink /etc/systemd/system/multi-user.target.wants/db.service
Servicios nativos
Algunos de los paquetes de Gentoo ya instalan archivos de unidad de systemd. Para estos servicios, no se necesita mas que activarlos. Un breve resumen de los archivos de unidad que instalan los paquetes, se puede ver en systemd eclass users list.
La siguiente tabla, lista las coincidencias de los servicios de systemd con los de OpenRC:
Paquete de Gentoo | Servicio de OpenRC | Unidad de systemd | Notas |
---|---|---|---|
sys-apps/openrc | bootmisc | systemd-tmpfiles-setup.service | activado siempre, utiliza tmpfiles.d |
consolefont | systemd-vconsole-setup.service | activado siempre, utiliza vconsole.conf | |
devfs | |||
dmesg | |||
fsck | fsck*.service | lanzado de forma implícita por los montajes | |
functions.sh | Véase nota | bug #373219 | |
hostname | (integrado) | /etc/hostname | |
hwclock | Véase nota | activado siempre como parte de systemd (es decir, incorporado al mismo y no es una unidad) | |
keymaps | systemd-vconsole-setup.service | activado siempre, utiliza vconsole.conf | |
killprocs | |||
local | |||
localmount | local-fs.target | las unidades reales son creadas implícitamente desde /etc/fstab | |
modules | systemd-modules-load.service | activado siempre, utiliza /etc/modules-load.d/*.conf | |
mount-ro | |||
mtab | |||
netmount | remote-fs.target | ||
numlock | |||
procfs | (integrado) | ||
root | remount-rootfs.service | ||
savecache | n/a | parte interna de OpenRC | |
staticroute | |||
swap | swap.target | las unidades reales son creadas implícitamente desde /etc/fstab | |
swclock | |||
sysctl | systemd-sysctl.service | sysctl.conf y sysctl.d/ | |
sysfs | (integrado) | ||
termencoding | systemd-vconsole-setup.service | activado siempre, utiliza vconsole.conf | |
urandom | systemd-random-seed-load.service | ||
systemd-random-seed-save.service | |||
app-admin/rsyslog | rsyslog | rsyslog.service | |
app-admin/syslog-ng | syslog-ng | syslog-ng.service | |
media-sound/alsa-utils | alsasound | alsa-store.service | (activado por defecto) |
alsa-restore.socket | (activado por defecto) | ||
net-misc/dhcpcd | dhcpcd | dhcpcd.service | |
net-misc/netifrc | net.* | net@.service | scripts de systemd wrapper para net.* scripts (viene con net-misc/netifrc) |
netctl@.service | net-misc/netctl es originariamente una herramienta de Arch Linux. | ||
NetworkManager.service | Para <networkmanager-0.9.8.4 : active NetworkManager-dispatcher.service para que los scripts de dispatcher.d funcionen. Active NetworkManager-wait-online.service para detectar que el sistema tiene una conexión viable de Internet. Desactive el resto de gestores de red (por ejemplo, wicd, dhcpcd) y wpa_supplicant. | ||
dhcpcd.service | Proporcionado por net-misc/dhcpcd | ||
systemd.networkd.service | Parte de systemd | ||
net-misc/openntpd | ntpd | ntpd.service | |
net-misc/openssh | sshd | sshd.service | ejecuta sshd como un demonio |
sshd.socket | ejecuta sshd sobre una base similar a inetd (por cada conexión entrante) | ||
net-wireless/wpa_supplicant | wpa-supplicant | wpa_supplicant.service | Demonio controlador de D-Bus (por ejemplo, para NetworkManager) |
wpa_supplicant@.service | interfaz específica de wpa_supplicant (usado como wpa_supplicant@wlan0.service) | ||
net-print/cups | cupsd | cups.service | forma clásica de iniciar el servicio al arranque |
cups.socket | activación de socket y de ruta (para iniciar cups solo bajo demanda) | ||
cups.path | |||
net-wireless/bluez | bluetooth | bluetooth.service | |
sys-apps/dbus | dbus | dbus.service | |
dbus.socket | |||
sys-apps/irqbalance | irqbalance | irqbalance.service | soporte solo en modo demonio |
sys-apps/microcode-ctl | microcode_ctl | Configura microcode como un módulo para que cargue su propio microcódigo. Ir a «Processor type and features» -> «CPU microcode loading support» y recuerde agregar la opción correcta, dependiendo del procesador, Intel o AMD, que maneje el sistema. | |
sys-fs/udev | udev | udev.service | |
udev-mount | (integrado) | /dev es montado como tmpfs | |
udev-postmount | udev-trigger.service | ||
udev-settle.service | |||
sys-power/acpid | acpid | acpid.service | La mayor parte de su funcionalidad la realiza systemd por sí mismo, de modo que, quizás debería considerar la posibilidad de desactivar este servicio |
x11-apps/xdm | (xdm) | xdm.service | OpenRC utiliza comúnmente el init.d «xdm» instalado por x11-base/xorg-server. Con systemd necesitará activar el correspondiente fichero de unidad para cada gestor de inicio de sesión (gdm.service, kdm.service...) |
net-firewall/iptables | iptables | iptables-store.service | |
iptables-restore.service |
! scope="col" | Gentoo package ! scope="col" | OpenRC service ! scope="col" | systemd unit ! scope="col" | Notes |-
! scope="row" rowspan="28" | sys-apps/openrc | bootmisc || systemd-tmpfiles-setup.service || always enabled, uses tmpfiles.d |-
| consolefont || systemd-vconsole-setup.service || always enabled, uses vconsole.conf |-
| devfs || || |-
| dmesg || || |-
| fsck || fsck*.service || pulled in implicitly by mounts |-
| functions.sh || See note || bug #373219 |-
| hostname || (builtin) || /etc/hostname |-
| hwclock || See note || always enabled as part of systemd (i.e. it is baked in and it is not a unit) |-
| keymaps || systemd-vconsole-setup.service || always enabled, uses vconsole.conf |-
| killprocs || || |-
| local || || |-
| localmount || local-fs.target || actual units are created implicitly from /etc/fstab |-
| modules || systemd-modules-load.service || always enabled, uses /etc/modules-load.d/*.conf |-
| mount-ro || || |-
| mtab || || |-
| netmount || remote-fs.target || |-
| numlock || || |-
| procfs || (builtin) || |-
| root || remount-rootfs.service || |-
| savecache || n/a || OpenRC internals |-
| staticroute || || |-
| swap || swap.target || actual units are created implicitly from /etc/fstab |-
| swclock || || |-
| sysctl || systemd-sysctl.service || sysctl.conf and sysctl.d/ |-
| sysfs || (builtin) || |-
| termencoding || systemd-vconsole-setup.service || always enabled, uses vconsole.conf |-
| scope="row" rowspan="2" | urandom | systemd-random-seed-load.service || |-
| systemd-random-seed-save.service || |-
! scope="row" | app-admin/rsyslog | rsyslog || rsyslog.service || |-
! scope="row" | app-admin/syslog-ng | syslog-ng || syslog-ng.service || |-
! scope="row" rowspan="2" | media-sound/alsa-utils | scope="row" rowspan="2" | alsasound | alsa-store.service || (enabled by default) |-
| alsa-restore.socket || (enabled by default) |-
! scope="row" | net-misc/dhcpcd | dhcpcd || dhcpcd.service || |-
! scope="row" rowspan="5" | net-misc/netifrc | scope="row" rowspan="5" | net.* | net@.service || systemd wrapper for net.* scripts (comes with net-misc/netifrc) |-
| netctl@.service || net-misc/netctl is originally an Arch Linux tool. |-
| NetworkManager.service || For <networkmanager-0.9.8.4 : enable NetworkManager-dispatcher.service for dispatcher.d scripts to work.
Enable NetworkManager-wait-online.service to detect that the system has a working internet connection.
Disable all other managers (e.g., wicd, dhcpcd) and wpa_supplicant.
|-
| dhcpcd.service || Provided by net-misc/dhcpcd |-
| systemd.networkd.service || Part of systemd |-
! scope="row" | net-misc/openntpd | ntpd || ntpd.service || |-
! scope="row" rowspan="2" | net-misc/openssh | scope="row" rowspan="2" | sshd | sshd.service || runs sshd as a daemon |-
| sshd.socket || runs sshd on a inetd-like basis (for each incoming connection) |-
! scope="row" rowspan="2" | net-wireless/wpa_supplicant | scope="row" rowspan="2" | wpa-supplicant | wpa_supplicant.service || D-Bus controlled daemon (e.g. for NetworkManager) |-
| wpa_supplicant@.service || interface-specific wpa_supplicant (used like wpa_supplicant@wlan0.service) |-
! scope="row" rowspan="3" | net-print/cups | scope="row" rowspan="3" | cupsd | cups.service || classic on-boot start up service |-
| cups.socket | scope="row" rowspan="2" | socket and path activation (cups only started on-demand) |-
| cups.path |-
! scope="row" | net-wireless/bluez | bluetooth || bluetooth.service || |-
! scope="row" rowspan="2" | sys-apps/dbus | scope="row" rowspan="2" | dbus | dbus.service || |-
| dbus.socket || |-
! scope="row" | sys-apps/irqbalance | irqbalance || irqbalance.service || supports daemon mode only |-
! scope="row" | sys-apps/microcode-ctl | microcode_ctl || || Configure microcode as a module to let it load the microcode itself. Go to "Processor type and features" -> "CPU microcode loading support" and remember to add the right option based on the system having an Intel or AMD processor. |-
! scope="row" rowspan="4" | sys-fs/udev | udev || udev.service || |-
| udev-mount || (builtin) || /dev is mounted as tmpfs |-
| udev-postmount || udev-trigger.service || |-
| || udev-settle.service || |-
! scope="row" | sys-power/acpid | acpid || acpid.service || Most of its functionality is done by systemd itself, so consider disabling this |-
! scope="row" | x11-apps/xdm | (xdm) || xdm.service || OpenRC uses common xdm init.d installed by x11-base/xorg-server. With systemd the corresponding unit file for each DM (gdm.service, kdm.service...) needs to be enabled. |-
! scope="row" rowspan="2" | net-firewall/iptables | scope="row" rowspan="2" | iptables | iptables-store.service || |-
| iptables-restore.service || |-
|}
User services
It is possible to manage services as a per-user systemd instance. This allows users to setup their own services or timers.
User units can be located at multiple places. Users are allowed to place them to $XDG_CONFIG_HOME/systemd/user/. Installed packages place them to /usr/lib/systemd/user/.
User services use --user
systemctl option. For example to start a mpd user service:
user $
systemctl --user start mpd
Servicios con temporizador
Desde la versión 197, systemd soporta temporizadores, haciendo de cron un programa innecesario en un sistema systemd. Desde la versión 212, se da soporte a los servicios persistentes, reemplazando, incluso, a anacron. Los temporizadores persistentes se ejecutan en la próxima oportunidad, si el sistema se apaga cuando se programó el temporizador.
El siguiente es un ejemplo de cómo hacer un temporizador simple que se ejecuta en el contexto de un usuario. Será ejecutado incluso si el usuario no inicia sesión. Cada servicio con temporizador necesita un temporizador, y un archivo de servicio que se activa por el temporizador de la siguiente manera:
[Unit]
Description=daily backup work
RefuseManualStart=no
RefuseManualStop=no
[Timer]
Persistent=false
OnCalendar=Mon-Fri *-*-* 11:30:00
Unit=backup-work.service
[Install]
WantedBy=default.target
[Unit]
Description=daily backup work
RefuseManualStart=no
RefuseManualStop=yes
[Service]
Type=oneshot
ExecStart=/home/<nombredeusuario>/scripts/backup-work.sh
These unit files can be created either manually or using the systemctl edit utility:
user $
systemctl edit --force --full --user backup-work.timer
When creating the unit files manually, the files are to be placed in the ~/.config/systemd/user directory. It may need to be created for the relevant user:
user $
mkdir -p ~/.config/systemd/user
To have a timer run while the user is not logged in, be sure to enable lingering sessions:
user $
loginctl enable-linger <username>
En primer lugar, hay que decirle a systemd que recargue los archivos de servicio:
user $
systemctl --user daemon-reload
Es posible realizar la copia de seguridad manualmente ejecutando la siguiente orden:
user $
systemctl --user start backup-work.service
Se puede iniciar y detener el temporizador manualmente de la siguiente manera:
user $
systemctl --user start backup-work.timer
user $
systemctl --user stop backup-work.timer
Por último, para activar el temporizador en cada inicio del sistema, ejecute:
user $
systemctl --user enable backup-work.timer
Para comprobar los últimos resultados de la ejecución del servicio:
user $
systemctl --user list-timers
Correos electrónicos para comunicar fallos
Si un servicio programado se ejecuta y falla, se puede enviar un correo electrónico al usuario o administrador para informarle. Esto es posible con la línea «onfailure» que especifica lo que debería suceder si un servicio falla. Un fallo es detectado cuando el script invocado devuelve un código distinto de cero.
Habrá que cambiar el script de la siguiente manera:
[Unit]
Description=daily backup work
RefuseManualStart=no
RefuseManualStop=yes
OnFailure=failure-email@%i.service
[Service]
Type=oneshot
ExecStart=/home/<nombredeusuario>/scripts/backup-work.sh
Esto requiere que tenga el servicio failure-email@.service instalado, que se puede encontrar en kylemanna's systemd-utils repository.
Sustituir cron
Los archivos con temporizador y de servicios vistos antes también se pueden añadir a /lib/systemd/system para hacerlos disponibles a todo el sistema. La sección «install» debería decir entonces WantedBy=multi-user.target
para activar el servicio al iniciar el sistema.
Sin embargo, también cron ejecuta los scripts situados en /etc/cron.daily y otros lugares. Varios paquetes colocan scripts allí donde se espera que se ejecuten diariamente. Este comportamiento puede ser emulado con systemd instalando sys-process/systemd-cron. Luego active el nuevo reemplazo de cron con las siguientes órdenes:
root #
systemctl enable cron.target
root #
systemctl start cron.target
Solución de problemas
Slow shutdowns or reboot times due to running services
- Problem
- Occasionally a systemd system or user service will cause the system to greatly delay poweroff/shutdown or reboot operation due to systemd default wait times for the operation blocking service to time out.
- Solution
- To greatly speed up this operation, the default timeout values can be reduced at the expense of the service (potentially) not cleanly finishing a task. In order to be effective, both of the following configuration changes must be put into effect to shorten the default timeout system and user services.
[Manager]
DefaultTimeoutStopSec=10s
[Manager]
DefaultTimeoutStopSec=10s
/dev/kmsg buffer overrun, some messages lost
- Problema
- Cuando se inicia el sistema, se muestra el mensaje
/dev/kmsg buffer overrun, some messages lost
en un bucle infinito. La pantalla de acceso no se llega a mostrar ya que no se alcanza ese punto del proceso de arranque.
- Solución
- En la mayoría de los casos este problema está causado porque la opción CONFIG_POWER_SUPPLY_DEBUG está habilitada en el núcleo. La solución actual consiste en deshabilitar esta opción en el núcleo, recompilar, instalar e iniciar el nuevo núcleo. Se puede encontrar la descripción de la solución en este hilo de los foros de Gentoo. Tal y como indica un usuario del foro, este problema se ha observado también cuando se utiliza una EEPROM I2C en un sistema incrustado[1]. La solución en este caso consiste en deshabilitar la opción CONFIG_I2C_DEBUG_CORE del núcleo.
Sesiones gráficas abiertas en lugares aleatorios
Por defecto, systemd lanza únicamente un proceso getty cuando se va a utilizar. Esto causa que algunos gestores gráficos (como GDM) utilicen los TTYs que queden para abrir sesiones gráficas bajo demanda lo cual puede resultar en tener las consolas y las sesiones gráficas repartidas de forma aleatoria dependiendo en el orden en el que se hayan utilizando.
Para que el comportamiento sea más "clásico" (esto es, las consolas se emplazan desde la tty1 a la tty6 y las sesiones gráficas utilizan los TTY que quedan) forzar a lanzar siempre getty en ellas:
root #
systemctl enable getty@tty{2,3,4,5,6}.service
LVM
Cuando se cambia de OpenRC a systemd y se necesita LVM para montar correctamente los volúmenes del sistema, hay que activar el servicio LVM:
root #
systemctl enable lvm2-monitor.service
A pesar de que este servicio podría no ser necesario para la activación del volumen raíz (si LVM está integrado en initramfs), podrían no funcionar sin él otros volúmenes LVM, a menos que se active el servicio.
systemd-bootchart
Asegurarse de que CONFIG_DEBUG_KERNEL, CONFIG_SCHED_DEBUG y CONFIG_SCHEDSTATS están habilitadas.
File systems --->
Pseudo filesystems --->
[*] /proc file system support
Kernel hacking --->
[*] Kernel debugging
[*] Collect scheduler debugging info
[*] Collect scheduler statistics
A continuación habilitar systemd-bootchart.service:
root #
systemctl enable systemd-bootchart
El resultado de los cambios producirán un informe gráfico de arranque en formato SVG localizado en /run/log/ después de cada inicio. Se puede visualizar utilizando cualquier navegador Web actual.
Como alternativa a systemd-bootchart, el arranque de los servicios se puede visualizar con:
root #
systemd-analyze plot > plot.svg
Fuente syslog-ng para systemd
No es necesario añadir unix-dgram('/dev/log');
al fichero de configuración /etc/syslog-ng/syslog-ng.conf. Causará el fallo de syslog-ng (al menos en la versión syslog-ng-3.7.2). Actualizar la línea source src { ...; };
mencionada en el artículo sobre syslog-ng como se muestra a continuación:
# Configuración por defecto para openrc
#source src { system(); internal(); };
# systemd
source src { systemd-journal(); internal(); };
Configuración de sys-fs/cryptsetup
systemd no parece respetar /etc/conf.d/dmcrypt (vea bug #429966) por lo que necesita ser configurado a través del archivo /etc/crypttab:
crypt-home UUID=c25dd0f3-ecdd-420e-99a8-0ff2eaf3f391 -
Asegúrese de actualizar el ajuste USE cryptsetup
para sys-apps/systemd. Se instalará /lib/systemd/system-generators/systemd-cryptsetup-generator el cual creará de forma automática un servicio (cryptsetup@crypt-home.service
para el ejemplo de arriba) para cada una de las entradas en el momento del inicio.
Comprobar la unidades que fallan al inicio
Compruebe si hay unidades que no pudieron comenzar con:
root #
systemctl --failed
Activar modalidad de depuración de errores
Para obtener más información estableca lo siguiente en /etc/systemd/system.conf:
LogLevel=debug
O, active la depuración de errores en consola, que abre una terminal en tty9. Esto ayuda a depurar errores de los servicios durante el proceso de arranque.
root #
systemctl enable debug-shell.service
La utilización de e4rat
Recuerde editar /etc/e4rat.conf para configurar 'init' para /lib/systemd/systemd, de lo contrario se mantendrá el arranque de OpenRC.
Rigidez de GRSecurity
Con grsecurity activado, systemd-networkd podría registrar el error siguiente:
could not find udev device: Permission denied
El error aumenta debido a que cuando systemd-networkd trabaja bajo un usuario no root, grsecurity denegará el acceso a la estructura completa de /sys para dichos usuarios. Para desactivar esta opción, desactive la opción del núcleo CONFIG_GRKERNSEC_SYSFS_RESTRICT.
También se pueden encontrar alguno problemas con los permisos si se ha activado CONFIG_GRKERNSEC_PROC, leer más en la incidencia bug #472098.
shutdown -rF no fuerza la ejecución de fsck
El servicio systemd-fsck es el responsable de lanzar fsck cuando se necesita. No aplica para la opción -rF
de shutdown per en lugar de eso se aplica a los siguientes parámetros de inicio del núcleo.
Parámetro de inicio | Opciones soportadas | Descripción |
---|---|---|
fsck.mode
|
auto force skip
|
Controla el modo de operación. El valor por defecto es auto el cual asegura que se realizan comprobaciones del sistema de archivos cuando el comprobador del sistema de archivos lo estima necesario. force resulta en la comprobación completa del sistema de archivos incondicionalmente. skip evita cualquier comprobación del sistema de archivos.
|
fsck.repair
|
preen yes no
|
Controla el modo de operación. El valor por defecto es preen el cual reparará de forma automática problemas que se pueden resolver de forma segura. yes contestará sí a todas las preguntas realizadas por fsck y no contestará no a todas esas preguntas.
|
! scope="col" width="15%" | Boot parameter ! scope="col" width="15%" | Supported options ! Description |-
| fsck.mode
| auto
force
skip
| Controls the mode of operation. The default is auto
, and ensures that file system checks are done when the file system checker deems them necessary. force
unconditionally results in full file system checks. skip
skips any file system checks.
|-
| fsck.repair
| preen
yes
no
| Controls the mode of operation. The default is preen
, and will automatically repair problems that can be safely fixed. yes
will answer yes to all questions by fsck and no
will answer no to all questions.
|-
|}
Optional systemd binaries
Many optional systemd binaries can be built by setting certain use flags. An incomplete mapping of USE flag to binary is below.
USE flag | Additional binary built |
---|---|
curl
|
/lib/systemd/systemd-journal-upload |
http
|
/lib/systemd/systemd-journal-gatewayd /lib/systemd/systemd-journal-remote |
Véase también
- Comparison of init systems — compares and contrasts init systems for Unix(like) OSs
- Sakaki's EFI Install Guide - En particular, el capítulo Configuring systemd and installing necessary tools
- Hard dependencies on systemd — a (possibly partial) list of packages in Gentoo's repository that unconditionally require systemd
- OpenRC to systemd Cheatsheet — lista de comandos comúnmente usados en OpenRC y sus comandos equivalentes en systemd.
Recursos externos
Referencias
- ↑ https://forums.gentoo.org/viewtopic-t-977530-postdays-0-postorder-asc-start-25.html Recuperado el 12 de marzo de 2016