Systemd es un gestor de arranque y de servicios para Linux desarrollado principalmente por Lennart Poettering (creador también de pulseaudio). Systemd, a diferencia de initscripts el gestor de inicio default en ArchLinux utiliza un método de paralelizacion agresiva que hace uso de los procesadores modernos multinucleo para iniciar procesos y demonios en paralelo real y así tener una gestión de inicio mas rápida y limpia.
Nota: Systemd hace uso de características de procesadores multi núcleo, si su procesador es mono núcleo , Systemd si va a funcionar, pero la diferencia seria cuando mucho penas perceptible. S
Systemd tampoco promete ser la respuesta a la rapidez del sistema y puede que una mala configuración dañe el sistema, le recomiendo leer muy bien de que trata Systemd y saber lo que hacen antes de hacer cualquier cambio, en si lo recomiendo para usuarios que gustan de personalización avanzada.
Instalar Systemd
Para instalar Systemd simplemente instalamos los paquetes necesarios vía pacman.
# pacman -S initscripts-systemd systemd systemd-arch-units
Luego pasamos a configurar Systemd.
Añadimos el comando init=/bin/systemd a la linea de arranque de nuestro kernel en el grub.
Tratandose de grub 1
Abrimos el /boot/grub/menu.lst
Y lo agregamos de la siguiente forma:
# (1) Arch Linux title Arch Linux root (hd0,0) kernel /vmlinuz-linux root=/dev/disk/by-uuid/d531ff5b-de65-499a-9942-d18682375163 ro quiet i init=/bin/systemd initrd /initramfs-linux.img |
Tratandose de grub2.
Abrimos el archivo /etc/default/grub
Lo agregamos de la siguiente forma:
GRUB_DEFAULT=2 GRUB_TIMEOUT=3 GRUB_DISTRIBUTOR="Arch Linux" GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/bin/systemd" GRUB_CMDLINE_LINUX="" |
Luego actualizamos el grub:
# grub-mkconfig -o /boot/grub/grub.cfg
Listo, el grub2 tendrá el parámetro de systemd, por que asi en grub2 y no editar el archivo directamente? Eso es explicación de otro post.
Manejo basico de los scripts de Systemd
systemctl: Es el comando utilizado para controlar los modulos de systemd y monitorear su desempeño
systemd-cgls: Muestra el arbol jerarquico de de un grupo de Control de systemdrecursively shows the contents of the selected Linux control group hierarchy in a tree
systemadm: Un frontend grafico para controlar y administrar systemd
Es recomendado ver el manual de systemd para mas detalles
man systemd
Ahora algunos comandos de manejo basicos
Listar servicios en ejecucion
$ systemctl
O tambien
$ systemctl list-units
Los servicios disponibles se encuentra listados en los directorios /lib/systemd/system y /etc/systemd/system
Activar un servicio:
# systemctl start
Deactivar un servicio:
# systemctl stop
Reiniciar un servicio:
# systemctl restart
Recargar un servicio:
# systemctl reload
Muestra el estatus de un servicio, incluso si esta en ejecucion o no:
# systemctl status
Habilita in servicio que sea iniciado en el proximo arranque:
# systemctl enable
Deshabilita un servicio para que no sea iniciado automaticamente en el siguiente arranque:
# systemctl disable
Configurar systemd
Niveles de ejecucion/objetivos
Systemd tiene un concepto de objetivos que define el nivel de ejecucion, con solo algunas diferencias. Algunos objetivos solo añaden los servicios del objetivo anterior y añade otros servicios a el. Si esta familiarizado con los niveles de ejecucion esto no sera problema.
|
Nivel de ejecucion SystemV |
Objetivo de Systemd |
Notas |
| 0 | runlevel0.target, poweroff.target | Apaga el sistema |
| 1, mono usuario | runlevel1.target, rescue.target | Modo mono-usuario |
| 2, 4 | runlevel2.target, runlevel4.target, multi-user.target | Modo de inicio definido por el usuario/sistema, por default identico a 3 |
| 3 | runlevel3.target, multi-user.target | Multiusuario, entorno grafico |
| 5 | runlevel5.target, graphical.target | Multiusuario, entorno grafico, todos los servicios del nivel 3 mas un entorno grafico |
| 6 | runlevel6.target, reboot.target | reinicio |
| emergency | emergency.target | Shell de emergencia |
Cambiar los niveles de ejecucion en Systemd
En systemd los niveles de ejecucion son expuestos como unidades de ejecucion, cada una de estas unidades inicia los scripts necesarios para ser iniciado mencionado runlevel
Multi usuario con interfaz grafica:
# systemctl isolate runlevel5.target
O nivel monousuairo o modo de rescate (runlevel 1)
# systemctl isolate runlevel1.target
Iniciar el entorno grafico con systemd
Para iniciar un entorno grafico debemos tener un display manager (o gestor de sesiones) como GDM, KDM o Slim
Agreggando KDM:
# systemctl enable kdm.service
Agregando GDM
# systemctl enable gdm.service
Integracion con los archivos de configuracion de Arch
La integracion y configuracion automatica se logra con el paquete initscripts-systemd, este es un paquete opcional (altamente recomendado) para hacer la trancision de sysVinit a Systemd.
Hay cambios como:
/etc/inittab no es utilizado para nada
/etc/rc.local y /etc/rc.local.shutdown pueden ser utilizados habilitando el servicio rc.local.service:
systemctl enable rc-local.service
/etc/rc.conf es utilizado parcialmente gracias a este paquete, si no es utilizado initscripts-systemd se tendran que editar los archivos nativos de configuracion systemd.
Se utiliza de /etc/rc.conf
LOCALE (lenguage local configurado)
KEYMAP (mapa de teclado)
CONSOLEFONT (fuente de consolas)
CONSOLEMAP (mapa de teclado en consola)
HOSTNAME (nombre del host)
MODULES (lista de modulos que inician por definicion)
DAEMONS (lista de daemosn, acepta blacklisting (!) e inicio en el background(@) )
No utilizado de /etc/rc.conf
TIMEZONE (symlink /etc/localtime to your zoneinfo file manually)
HARDWARECLOCK (utilize ‘hwclock –systohc –utc’ tpara establecer la hora del sistema a utc, localtime no esta soportado)
USELVM (el servicio lvm.service cumple esta funcion)
USECOLOR
Configurar los servicios de initscripts-systemd
Este paquete contiene algunos servicios que cumple algunas faltas en el desuso del /etc/rc.conf
lvm-service Copia el manejo de volumenes logicos del sistem arch linux, hay que habilitar este servicio si utilizamos LVM
systemctl enable lvm.service
rc-local.service Ejecuta archivos de configuracion/etc/rc-local, /etc/rc-local.shutdown
systemctl enable rc-local.service
arch-daemons.target Ejecuta la lista de DAEMONS del /etc/rc.conf. Si hay servicios nativos de systemd para manejar alguno de estos daemons, el servicio sera utilziado y su registro de la lista de DAEMONS sera omitida
systemctl enable arch-daemons.target
arch-persistent-settings.service Se aplica al apagar, se aegura que las configuraciones de Arch se ejecuten al siguiente inicio:
Ajusta la zona horaria en base al /etc/rc.conf o crea un symlink a /etc/localtime de la zona horaria de /usr/share/zoneinfo
Actualiza la lista de modulos basado en el /etc/rc.conf
systemctl enable arch-persistent-settings.service
Como alternativa a initscripts-systemd se pueden configurar manualmente los parametros que este paquete maneja, la entrada en la wiki tiene mucha mas informacion al respecto, aqui
No related posts.





Muy buena la info , gracias por el post.
Muy buena explicación y muy útil para quién se decida a migrar a systmed ya, muchas gracias por todos los detalles. Saludos
Escribi esto en la consola para activar los daemons…
“The unit files have no [Install] section. arch-daemons.target ”
y me devolvio esto..
“They are not meant to be enabled using systemctl.”
Hola, muy buena info amigo, pero tengo una pregunta, en mi pc tengo instalado Ubuntu, Archlinux y windows 7, en el arranque tengo grub 2 de ubuntu 12.04, alguien sabría decirme como puedo modificar el grub2 de ubuntu para que arch inicie con systemd ? gracias desde ya por la respuesta, (si es que hay una jeje)