Cómo puedo hacer seguimiento de las ventanas relacionadas en X11?

StackOverflow https://stackoverflow.com/questions/60967

  •  09-06-2019
  •  | 
  •  

Pregunta

Por desgracia, mi pregunta no es tan simple como seguir la pista de dos de windows creado por el mismo proceso.

Aquí es lo que tengo:

  • Dos usuarios, Jack y Jim son de forma remota registrado en el mismo sistema Unix y ejecutar los servidores X
  • Jack se ejecuta una aplicación, 'AwesomeApp', que abre una interfaz gráfica de usuario en una ventana de X
  • Jim se ejecuta otro ejemplo de esta aplicación, abriendo su propia ventana de la GUI
  • Ahora, Jack corre un supervisor de la aplicación que se comunique con el proceso de la posesión de la primera ventana (por ejemplo, 'AwesomeApp'), porque es la instancia de 'AwesomeApp'
  • ¿Cómo puede su instancia del supervisor encontrar la instancia de 'AwesomeApp' ventana de su propia?

Aaaahhhh...en busca de seguridad en función de cada usuario sí que podría funcionar.Siempre le digo a los usuarios que no pueden ingresar con la misma cuenta de usuario desde dos lugares diferentes.

¿Fue útil?

Solución

Puede utilizar pgrep para obtener el IDENTIFICADOR de proceso de Jack instancia de AwesomeApp:

pgrep -u Jack AwesomeApp


Así que si usted lanza el supervisor de la aplicación de una secuencia de comandos de shell, se podría hacer algo como lo siguiente:

AWESOME_ID=`pgrep -u $USER AwesomeApp 2>/dev/null`

# run the supervisor application and pass the process id as the argument
supervisor $AWESOME_ID


Alternativamente, si usted no quiere usar programas externos como pgrep o ps, siempre se puede intentar buscar el proceso en /proc directamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top