Se ha hablado mucho de el cambio a systemd en ArchLinux, pero se ha hablado realmente poco de que es systemd, como funciona y de si es es una mejora o no para el sistema Arch, mucho menos se ha mencionado de que distros como Fedora u OpenSuSe ya adoptaron definitivamente systemd, o que Gentoo o Debian testing ya lo adoptaron desde hace tiempo como alternativa.
Que es systemd?
Systemd es un gestor de sistenma y servicios para Linux, compatible con scripts Sysv o init, tiene capacidades de paralelizacion de procesos (manejar 2 o mas procesos en el arranque al mismo tiempo), pero no solo hace eso:
- Usa Dbus y Sockets para activar servicios
- Puede ejecutar daemons por demanda
- Optimiza el uso de recursos utilizando cgroups
- Soporta snapshots y restauracion del sistema a un punto definido
- Administra puntos de montaje y montaje de unidades de almacenamiento
Y que hace?
Generalmente la administracion de un sistema GNU/Linux se divide en varias partes: estan los servicios o daemons que corren ciertos programas de fondo, estan los puntos de montaje con permisos y usuarios, asi como dbus, los sockets que escuchan protocolos y ordenes. Cada una de estas partes con su propia administración y su propia logica, systemd es un entorno para manejar todo esto dentro de la misma herramienta.
Systemd trabaja con unidades. Una unidad en un archivo que contiene informacion acercad e un servicio, un socket, un punto de montaje o de automontaje, un swap o simplemente un pounto de inicio de una aplicacion o script gatillada por systemd. La sintaxis esta insirada en la especificacion de los archivos .desktop que utilizamos para lanzar las aplicaciones de cualquiera de nuestros programas (en cualquier escritorio Linux), esta basado en la especificacion de XDG Desktop Entry.
Mas tarde escribire de estas undiades y como crear nuestras propias unidades y puntos de inicio, de momento hasta ahi vamos bien.
Y como funciona
Ya habia hablado al respecto en otro post que instalaba systemd en ArchLinux y que jugara con initscripts (que hace falta un post sobre instalar y correr a puro y duro systemd, que es la mejor opcion ahora), voy a abarcar un poco de ello:
La principal herramienta de systemd es:
$ systemctl
Podemos listar las unidades en ejecucion
$ systemctl list-units
Las unidades disponibles se encuentra listados en los directorios /lib/systemd/system y /etc/systemd/system, aunque tambien se pueden listar con:
systemctl list-unit-files
Esto me da la lista de las unidades disponibles y el estatus de ellas

Activar una unidad:
# systemctl start
Deactivar una unidad:
# systemctl stop
Reiniciar una unidad:
# systemctl restart
Recargar una unidad:
# systemctl reload
Muestra el estatus de una unidad, incluso si esta en ejecucion o no:
# systemctl status
Habilita la unidad que sea iniciado en el proximo arranque:
# systemctl enable
Deshabilita una unidad para que no sea iniciado automaticamente en el siguiente arranque:
# systemctl disable
EJEMPLO:
Quiero que mi servicio de bluetooth se inicie por default al iniciar el sistema:
sudo systemctl enable bluetooth.service
Pero mas que habilitar su inicio, yo lo necesito ahora:
sudo systemctl start bluetooth.service
pero no estoy seguro si inicio o no:
sudo systemctl status bluetooth.service
Y me da:

Y si ya no quiero que inicie el bluetooth por default?
sudo systemctl disable bluetooth.service
Ahora, imaginen que fuera asi para demonios, servicios, puntos de montaje, sockets y administracion general del sistema, una sola herramienta de sintaxis sencilla y facil de automatizar con scripts, suena bien ¿no?
para este fin de semana hay que adentrarons en la sitaxis de las unidades, dejar a Arch con puro y duro systemd y enchular el systemd. Saludos
Para leer:
http://freedesktop.org/wiki/Software/systemd/
http://0pointer.de/public/systemd-man/systemd.unit.html
https://wiki.archlinux.org/index.php/Systemd