Domanda

Sfortunatamente, la mia domanda non è così semplice come tenere traccia di due finestre create dallo stesso processo.

Ecco cosa ho:

  • Due utenti, Jack e Jim, hanno effettuato l'accesso in remoto allo stesso sistema Unix ed eseguono server X
  • Jack esegue un'applicazione, "AwesomeApp", che apre una GUI in una finestra X
  • Jim esegue un'altra istanza di questa applicazione, aprendo la propria finestra della GUI
  • Ora, Jack esegue un'applicazione supervisore che comunicherà con il processo proprietario della prima finestra (ad esempio "AwesomeApp") perché è la SUA istanza di "AwesomeApp"
  • Come può la sua istanza di supervisore scoprire quale istanza della finestra "AwesomeApp" è la sua?

Aaaahhhh...cercandolo per utente sì, potrebbe funzionare.A patto di dire agli utenti che non possono accedere con lo stesso account utente da due posti diversi.

È stato utile?

Soluzione

Puoi usare pgrep per ottenere l'ID del processo dell'istanza di AwesomeApp di Jack:

pgrep -u Jack AwesomeApp


Quindi, se avvii l'applicazione supervisore da uno script di shell, potresti fare qualcosa di simile a quanto segue:

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

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


In alternativa, se non vuoi usare programmi esterni come pgrep o p.s, puoi sempre provare a cercare il processo in /proc direttamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top