2013-09-25

‎Utilizar /usr/lib/systemd/systemd --user para gestionar la propia sesión

← Older revision

Revision as of 19:45, 25 September 2013

(6 intermediate revisions by one user not shown)

Line 11:

Line 11:

 

 

 

[[systemd (Español)|systemd]] ofrece a los usuarios la capacidad de ejecutar una instancia de [[systemd (Español)|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]]

 

[[systemd (Español)|systemd]] ofrece a los usuarios la capacidad de ejecutar una instancia de [[systemd (Español)|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 desde systemd 206 ==

 

+

{{Nota|Las sesiones de usuario están en desarrollo, por lo que faltan algunas características, que aún no están apoyadas por los desarrolladores. Véase [[http://lists.freedesktop.org/archives/systemd-devel/2013-July/012392.html]] y [[http://lists.freedesktop.org/archives/systemd-devel/2013-August/012517.html]] para obtener más detalles sobre el estado actual del asunto.}}

 

+

Desde la versión 206, el mecanismo para instancias de usuario de systemd ha cambiado. Ahora el módulo {{ic|pam_systemd.so}} lanza una instancia de usuario, por defecto, en el primer inicio de sesión de un usuario, iniciando {{ic|user@.service}}. En el estado actual, existen algunas diferencias con respecto a versiones anteriores de systemd, que hay que tener en cuenta:

 

+

* La instancia {{ic|systemd --user}} se ejecuta fuera de cualquier sesión de usuario. Esto está bien para correr, por ejemplo {{ic|mpd}}, pero puede ser molesto si uno trata de iniciar un gestor de ventanas desde la instancia de usuario de systemd. Entonces polkit evita montar usb, reinicar, etc., como un usuario normal, porque el gestor de ventanas se ha ejecutado fuera de la sesión activa.

 

+

*  Las unidades en la instancia de usuario no heredan cualquier entorno, por lo que se debe fijar manualmente.

 

+

* {{ic|user-session@.service}} de {{AUR|user-session-units}} está ahora obsoleto.

 

+

 

+

Pasos para utilizar las unidades de instancia de usuario:

 

+

1. Asegúrese de que la instancia de usuario de systemd se inicia correctamente. Puede comprobar esto con: {{bc|systemctl --user status}} Desde systemd 206 debe haber una instancia de usuario ejecutando systemd por defecto, que se inicia en el módulo pam {{ic|pam_systemd.so}} para la primera sesión de un usuario.

 

+

{{Nota|Desde la version 207, systemd utiliza un servicio PAM diferente para user@.service, e incluye una configuración PAM por defecto  incorrecta.

 

+

Soluciónelo con: {{ic|# sed -i s/system-auth/system-login/g /etc/pam.d/systemd-user}} (o sustituya todas las apariciones de {{ic|system-auth}} en ese archivo con {{ic|system-login}}).}}

 

+

2. Agregue las variables de entorno que necesita, en un párrafo en el archivo de configuración para {{ic|user@.service}}. Al menos, debe contener lo siguiente:

 

+

{{hc|/etc/systemd/system/user@.service.d/environment.conf|

 

+

[Service]

 

+

Environment=DISPLAY=:0

 

+

Environment=XDG_RUNTIME_DIR=/run/user/%I

 

+

Environment=SHELL=%s

 

+

}}

 

+

3. Ponga todas sus unidades de usuario en {{ic|$HOME/.config/systemd/user}}. Cuando inicie la instancia de usuario, lance el target predeterminado {{ic|$HOME/.config/systemd/user/default.target}}.  Después de eso, se pueden manejar las unidades de usuario con {{ic|systemctl --user}}.

 

 

 

== Configuración ==

 

== Configuración ==

Line 21:

Line 41:

 

 

 

A continuación, se debe iniciar systemd colocando en el archivo  {{ic|~/.xinitrc}} lo siguiente:

 

A continuación, se debe iniciar systemd colocando en el archivo  {{ic|~/.xinitrc}} lo siguiente:



{{bc|systemd --user}}

+

{{bc|
/usr/lib/systemd/
systemd --user}}



Si no estamos lanzando el gestor de ventanas a través de systemd --user, entonces será necesario insertar {{bc|systemd --user &}} en el archivo {{ic|~/.xinitrc}}, de modo que lance systemd como cualquier otra aplicación, antes de ejecutar el gestor de ventanas.

+

Si no estamos lanzando el gestor de ventanas a través de
/usr/lib/systemd/
systemd --user, entonces será necesario insertar {{bc|
/usr/lib/systemd/
systemd --user &}} en el archivo {{ic|~/.xinitrc}}, de modo que lance systemd como cualquier otra aplicación, antes de ejecutar el gestor de ventanas.

 

 

 

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

 

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

Line 36:

Line 56:

 

 

 

==== GNOME 3 (utilizando GDM) ====

 

==== GNOME 3 (utilizando GDM) ====



Para los usuarios que desean tener GDM/GNOME 3 iniciando la sesión {{ic|systemd --user}} automáticamente al conectarse, solo hay que crear una sesión de login especial:

+

Para los usuarios que desean tener GDM/GNOME 3 iniciando la sesión {{ic|
/usr/lib/systemd/
systemd --user}} automáticamente al conectarse, solo hay que crear una sesión de login especial:

 

{{hc|/usr/share/xsessions/gnome-systemd.desktop|<nowiki>

 

{{hc|/usr/share/xsessions/gnome-systemd.desktop|<nowiki>

 

[Desktop Entry]

 

[Desktop Entry]

Line 48:

Line 68:

 

{{Nota|Lo anterior solo ha sido probado con una configuración pura de GDM y GNOME 3. En caso de configuraciones alternativas, su experiencia puede variar. Este método no requiere la instalación de los scripts user-session de systemd.}}

 

{{Nota|Lo anterior solo ha sido probado con una configuración pura de GDM y GNOME 3. En caso de configuraciones alternativas, su experiencia puede variar. Este método no requiere la instalación de los scripts user-session de systemd.}}

 

 



=== Utilizar systemd --user para gestionar la propia sesión ===

+

=== Utilizar
/usr/lib/systemd/
systemd --user para gestionar la propia sesión ===

 

 

 

Systemd tiene muchas características sorprendentes, una de ellas es la capacidad de hacer un seguimiento de los programas utilizando cgroups (ejecutando {{ic|systemctl status}}). Aunque esto es realmente útil para un sistema de init en cuyo proceso hay un '''pid 1''', también es muy útil para los usuarios que quieran utilizar esta función para iniciar automáticamente los programas de los mismos, haciendo un seguimiento simultáneamente del contenido de cada cgrupo.

 

Systemd tiene muchas características sorprendentes, una de ellas es la capacidad de hacer un seguimiento de los programas utilizando cgroups (ejecutando {{ic|systemctl status}}). Aunque esto es realmente útil para un sistema de init en cuyo proceso hay un '''pid 1''', también es muy útil para los usuarios que quieran utilizar esta función para iniciar automáticamente los programas de los mismos, haciendo un seguimiento simultáneamente del contenido de cada cgrupo.

Line 54:

Line 74:

 

Todas las unidades de usuario de systemd residirán en {{ic|$HOME/.config/systemd/user}}. Estas unidades tienen prioridad sobre otras unidades en residentes en otros directorios de unidades de systemd.

 

Todas las unidades de usuario de systemd residirán en {{ic|$HOME/.config/systemd/user}}. Estas unidades tienen prioridad sobre otras unidades en residentes en otros directorios de unidades de systemd.

 

 



Necesitamos dos paquetes para conseguir este trabajo, por un lado, el disponible actualmente desde [[Arch User Repository (Español)|AUR]]: {{AUR|xorg-launch-helper}} y, opcionalmente, por otro lado, {{AUR|user-session-units}} si desea trabajar con autologin.  

+

Necesitamos dos paquetes para conseguir este trabajo, por un lado, el disponible actualmente desde [[Arch User Repository (Español)|AUR]]: {{AUR|
systemd-
xorg-launch-helper
-git
}} y, opcionalmente, por otro lado, {{AUR|
systemd-
user-session-units
-git
}} si desea trabajar con autologin.  

 

 



Lo siguiente será crear los
objetivos
(''
targets
''). Configuraremos dos: uno para el gestor de ventanas, y otro como un target por defecto. El target del gestor de ventanas debe ser similar a lo siguiente:

+

Lo siguiente será crear los
targets
(''
«objetivos»
''). Configuraremos dos: uno para el gestor de ventanas, y otro como un target por defecto. El target del gestor de ventanas debe ser similar a lo siguiente:

 

 

 

{{hc|$HOME/.config/systemd/user/wm.target|<nowiki>

 

{{hc|$HOME/.config/systemd/user/wm.target|<nowiki>

Line 62:

Line 82:

 

Description=Window manager target

 

Description=Window manager target

 

Wants=xorg.target

 

Wants=xorg.target



Wants=
myStuff
.target

+

Wants=
mystuff
.target

 

Requires=dbus.socket

 

Requires=dbus.socket

 

AllowIsolate=true

 

AllowIsolate=true

Line 82:

Line 102:

 

</nowiki>}}

 

</nowiki>}}

 

 



Crearemos un enlace simbólico de nombre {{ic|default.target}}. Cuando se inicie {{ic|systemd --user}}, dicho target vendrá iniciado también.  

+

Crearemos un enlace simbólico de nombre {{ic|default.target}}. Cuando se inicie {{ic|
/usr/lib/systemd/
systemd --user}}, dicho target vendrá iniciado también.  

 

 

 

Por último, nececitamos escribir varios archivos de servicios correspondientes a los servicios que deben comenzar. Para ello, asociaremos un servicio al gestor de ventanas.

 

Por último, nececitamos escribir varios archivos de servicios correspondientes a los servicios que deben comenzar. Para ello, asociaremos un servicio al gestor de ventanas.

Line 103:

Line 123:

 

</nowiki>}}

 

</nowiki>}}

 

 



{{Nota|La sección {{ic|[Install]}} incluye el valor 'WantedBy'. Cuando usamos {{ic|systemctl --user enable}} se asocia a este como {{ic|$HOME/.config/systemd/user/wm.target.wants/
i3
.service}}, lo que le permite arrancarlo al iniciar sesión. Se recomienda activar este servicio, en lugar de unirlo de forma manual.}}

+

{{Nota|La sección {{ic|[Install]}} incluye el valor 'WantedBy'. Cuando usamos {{ic|systemctl --user enable}} se asocia a este como {{ic|$HOME/.config/systemd/user/wm.target.wants/
YOUR_WM
.service}}, lo que le permite arrancarlo al iniciar sesión. Se recomienda activar este servicio, en lugar de unirlo de forma manual.}}

 

 

 

Se puede poblar el directorio de unidades de usuario con una gran cantidad de servicios, incluyendo, a modo de ejemplo, algunos como '''mpd''', '''gpg-agent''', '''offlineimap''', '''parcellite''', '''pulse''', '''tmux''', '''urxvtd''', '''xbindkeys''' y '''xmodmap'''.

 

Se puede poblar el directorio de unidades de usuario con una gran cantidad de servicios, incluyendo, a modo de ejemplo, algunos como '''mpd''', '''gpg-agent''', '''offlineimap''', '''parcellite''', '''pulse''', '''tmux''', '''urxvtd''', '''xbindkeys''' y '''xmodmap'''.

 

+

 

+

Para salir de su sesión, utilice {{ic|systemctl --user exit}}.

 

 

 

===Inicio de sesión automático===

 

===Inicio de sesión automático===

Show more