Frage

Leider ist meine Frage nicht so einfach wie Spur von zwei Fenstern nach dem gleichen Verfahren erstellt zu halten.

Hier ist, was ich habe:

  • Zwei Benutzer, Jack und Jim sind remote angemeldet den gleichen Unix-System und führen X-Server
  • Jack führt eine Anwendung, 'AwesomeApp', die eine GUI in einem X-Fenster öffnet
  • Jim läuft eine andere Instanz dieser Anwendung zu öffnen seine eigene GUI-Fenster
  • Nun läuft Jack eine Supervisor-Anwendung, die mit dem Prozess kommunizieren wird das erste Fenster (zB ‚AwesomeApp‘), weil es HIS Instanz von ‚AwesomeApp‘
  • besitzen
  • Wie kann seine Instanz der Supervisor finden, welche Instanz von ‚AwesomeApp‘ Fenster ist sein eigenes?

aaaahhhh ... suchen sie nach oben auf einer Per-User-Basis ja, das funktionieren könnte. Solange ich die Nutzer sagt, dass sie nicht mit dem gleichen Benutzerkonto aus zwei verschiedenen Orten anmelden können.

War es hilfreich?

Lösung

Sie können mit pgrep die Prozess-ID von Jacks Instanz von AwesomeApp zu bekommen:

pgrep -u Jack AwesomeApp


Also, wenn Sie die Supervisor-Anwendung von einem Shell-Skript starten, können Sie so etwas wie die folgenden tun könnten:

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

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


Alternativ, wenn Sie nicht wollen, externe Programme wie pgrep verwenden oder ps , Sie können immer versuchen, für den Prozess der Suche in / proc direkt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top