Question

Malheureusement, ma question n'est pas aussi simple que de suivre deux fenêtres créées par le même processus.

Voici ce que j'ai :

  • Deux utilisateurs, Jack et Jim, sont connectés à distance au même système Unix et exécutent des serveurs X
  • Jack exécute une application, « AwesomeApp », qui ouvre une interface graphique dans une fenêtre X.
  • Jim exécute une autre instance de cette application, ouvrant sa propre fenêtre GUI
  • Maintenant, Jack exécute une application de supervision qui communiquera avec le processus propriétaire de la première fenêtre (par exemple « AwesomeApp ») car il s'agit de SON instance de « AwesomeApp ».
  • Comment son instance du superviseur peut-elle trouver quelle instance de la fenêtre « AwesomeApp » est la sienne ?

Aaaahhhh... rechercher chaque utilisateur oui, cela pourrait fonctionner.Tant que je dis aux utilisateurs qu’ils ne peuvent pas se connecter avec le même compte utilisateur depuis deux endroits différents.

Était-ce utile?

La solution

Vous pouvez utiliser pgrep pour obtenir l'ID de processus de l'instance AwesomeApp de Jack :

pgrep -u Jack AwesomeApp


Ainsi, si vous lancez l'application superviseur à partir d'un script shell, vous pouvez faire quelque chose comme ce qui suit :

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

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


Alternativement, si vous ne souhaitez pas utiliser de programmes externes comme pgrep ou ps, vous pouvez toujours essayer de rechercher le processus dans /proc directement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top