systemd/User (Español)

From ArchWiki
< Systemd
Revision as of 17:15, 4 December 2012 by Pedro (Talk | contribs) (Ejemplo con variables)

Jump to: navigation, search

Sumario help replacing me
Información sobre cómo configurar las sesiones de usuario de systemd
Relacionado
systemd (Español)

systemd ofrece a los usuarios la capacidad de ejecutar una instancia de systemd para gestionar la sesión y los servicios. Esto permite a los usuarios iniciar, detener, habilitar y deshabilitar las unidades que se encuentren dentro de ciertas carpetas cuando systemd se ejecuta por el usuario. Esto es conveniente para los demonios y otros servicios que normalmente se ejecutan como un usuario diferente a root o un usuario especial, como por ejemplo mpd

Configuración

startx

Los usuarios primero deben ajustar systemd-logind para gestionar la propia sesión. Si systemd se ejecuta como el demonio init del sistema, entonces esto ya está sucediendo.

A continuación, se debe iniciar systemd, poniendo en el archivo ~/.xinitrc, antes de la línea exec, lo siguiente:

$ systemd --user &

Después de iniciar X, se puede comprobar si la sesión está siendo gestionada por systemd-logind con la siguiente orden:

$ loginctl --no-pager show-session $XDG_SESSION_ID | grep Active

Si la salida de la orden es Active=yes, entonces el usuario ya está usando systemd-logind para gestionar la sesión. Debe eliminar cualquier referencia a ck-launch-session o dbus-launch del propio ~/.xinitrc, en cuanto que son órdenes innecesarias.

Gestores de pantalla

Todos los gestores de pantalla principales están usando systemd-logind de forma predeterminada, por lo que la orden loginctl del apartado anterior debería funcionar como se indica. El usuario solo tiene que añadir systemd --user como si se tratara de un programa a iniciar en el propio entorno de escritorio.

Servicios del ususario

Ahora los usuarios pueden interactuar con las unidades ubicadas en los carpetas relacionadas más abajo, tal como lo harían con los servicios del sistema (carpetas ordenadas por prioridad ascendente):

  • /usr/lib/systemd/user/
  • /etc/systemd/user/
  • ~/.config/systemd/user/

Para el control de la instancia de systemd, se debe utilizar la orden systemctl --user.

Unidades instaladas por los paquetes

Una unidad proveída por un paquete está destinada a ser ejecutada por una instancia de usuario de systemd que instalará la unidad en /usr/lib/systemd/user/. La administración del sistema puede modificar la unidad copiándola a /etc/systemd/user/. Un usuario puede modificar la unidad copiándola a ~/.config/systemd/user/.

Ejemplo

El siguiente es un ejemplo de una versión de mpd.service realizada por el usuario:

[Unit]
Description=Music Player Daemon

[Service]
ExecStart=/usr/bin/mpd --no-daemon

[Install]
WantedBy=default.target

Ejemplo con variables

El siguiente es un ejemplo de una versión de usuario de sickbeard.service, que tiene en cuenta los directorios home como variable, donde SickBeard puede encontrar ciertos archivos:

[Unit]
Description=SickBeard Daemon

[Service]
ExecStart=/usr/bin/env python2 /opt/sickbeard/SickBeard.py --config %h/.sickbeard/config.ini --datadir %h/.sickbeard

[Install]
WantedBy=default.target

Como se detalla en man systemd.unit, la variable %h es reemplazada por la carpeta home del usuario que ejecuta el servicio. Hay otras variables en las manpages de systemd que puede tenerlas en cuenta.

Enlaces externos