Pergunta

Infelizmente, minha pergunta não é tão simples quanto acompanhar duas janelas criadas pelo mesmo processo.

Aqui está o que eu tenho:

  • Dois usuários, Jack e Jim, estão logados remotamente no mesmo sistema Unix e executam servidores X
  • Jack executa um aplicativo, 'AwesomeApp', que abre uma GUI em uma janela X
  • Jim executa outra instância deste aplicativo, abrindo sua própria janela GUI
  • Agora, Jack executa um aplicativo supervisor que se comunicará com o processo que possui a primeira janela (por exemplo, 'AwesomeApp') porque é a instância HIS de 'AwesomeApp'
  • Como a instância do supervisor pode descobrir qual instância da janela 'AwesomeApp' é sua?

Aaaahhhh ... pesquisando por usuário, sim, isso pode funcionar.Contanto que eu diga aos usuários que eles não podem fazer login com a mesma conta de usuário em dois locais diferentes.

Foi útil?

Solução

Você pode usar pgrep para obter o ID do processo da instância AwesomeApp de Jack:

pgrep -u Jack AwesomeApp


Portanto, se você iniciar o aplicativo supervisor a partir de um script de shell, poderá fazer algo como o seguinte:

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, se você não quiser usar programas externos como pgrep ou obs:, você sempre pode tentar procurar o processo em /proc diretamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top