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