Mensajes programados

Alvaro Herrera alvherre en alvh.no-ip.org
Mie Ago 30 13:04:40 CLT 2006


> On 8/30/06, Rodrigo Ahumada <rodahummont en yahoo.com.ar> wrote:
> >El Wed, 30 Aug 2006 01:54:48 -0400
> >"Matias Valdenegro T." <huntsman84 en vtr.net> escribió:
> >[...]
> >>
> >> Exporta el DISPLAY al DISPLAY del usuario, de lo contrario no se
> >> mostrara porque no tiene idea en que pantalla mostrar el mensaje :)
> >>
> >
> >¿se puede saber cual es el DISPLAY activo? o sea, si se abren dos
> >sesiones X, una en F7 (¿0:0 se dice?) y otra en F8 (¿0:1?), ¿se puede
> >usar 0:*?

Herman Vega escribió:
> ps ax | grep X11 | awk {'print $6'} | grep :

Eso es un poco simplista, porque ignora que puede haber mas de una
sesion X corriendo en un sistema.  Por ej. en mi PC tengo una sesion mia
y una sesion de otro usuario (que abrio con "inicio de sesion nuevo" en
el menu de mi sesion).

Puedes obtener esto mismo de forma un poco mas robusta, asi:

ps -w -C Xorg -o args= | awk '{print $2}'

eso te entrega la lista de pantallas abiertas.  Para asociar una sesion
a un usuario, es un poco mas complicado; lo que puedes hacer es extraer
el PPID de cada uno de esos procesos, y luego buscar a que usuario
corresponden los procesos "hermanos" de ese (es decir, aquellos procesos
que tambien son hijos del mismo padre).

Por ej. obtienes el PPID de esos procesos Xorg asi:
ps -w -C Xorg -o ppid=

Esto me da los PIDs 13579 y 20598.

Luego, obtienes los otros procesos de cada uno:

$ ps -w --ppid 13579 -o user=
root
alvherre

Con eso ya sabes que hay una pantalla que es mia.  Jugando mas con ps(1)
puedes obtener que pantalla asociar a que usuario.  Por ej.

$ ps -w --ppid 13579 -o user=,args=
root     /usr/X11R6/bin/X :0 -dpi 96 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
alvherre /usr/bin/gnome-session

-- 
Alvaro Herrera                        http://www.advogato.org/person/alvherre
"El sabio habla porque tiene algo que decir;
el tonto, porque tiene que decir algo" (Platon).


Más información sobre la lista de distribución Linux