Pular para o conteúdo

Solução para fazer um aplicativo ficar em standby enquanto outro está rodando

Responder tópico
  • Denunciar
  • Indicar

1. Solução para fazer um aplicativo ficar em standby enquanto outro está rodando

Enviado em 05/05/2016 - 17:27h

Olá Amigos, antes de tudo gostaria de parabenizar a comunidade.

Tenho uma situação bem específica.
Preciso que ao inciar o PC o "Antimicro" seja inciado automaticamente, para que eu possa controlar e navegar no Ubuntu pelo Joystick. Isto já está ok, já consegui fazer. Mas agora instalei o "Retroarch" e quando estou jogando, os botões que aperto no Joystick durante o jogo começam a executar ações no Antimicro.

Gostaria de saber se tem como eu colocar uma condição. O "Antimicro" ficar inativo se o "Retroarch" estiver rodando e ao encerrar o "Retroarch" ele voltar a ficar ativo.

Responder tópico

2. Re: Solução para fazer um aplicativo ficar em standby enquanto outro está rodando

Enviado em 05/05/2016 - 19:47h

enterprisejeffer escreveu:

Olá Amigos, antes de tudo gostaria de parabenizar a comunidade.

Tenho uma situação bem específica.
Preciso que ao inciar o PC o "Antimicro" seja inciado automaticamente, para que eu possa controlar e navegar no Ubuntu pelo Joystick. Isto já está ok, já consegui fazer. Mas agora instalei o "Retroarch" e quando estou jogando, os botões que aperto no Joystick durante o jogo começam a executar ações no Antimicro.

Gostaria de saber se tem como eu colocar uma condição. O "Antimicro" ficar inativo se o "Retroarch" estiver rodando e ao encerrar o "Retroarch" ele voltar a ficar ativo.
É possível fazer tanto modificando script que você já lança o Antimicro como é possível criar um ou mais script "monitores". Pelo fato do script que lança o Antimicro já estar pronto, talvez criar um segundo script seja a melhor opção.

Em qualquer um dos casos, você vai enviar o sinal SIGSTOP ao processo do Antimicro quando o Retroarch for descoberto rodando e ao perceber o fim da execução, enviar um sinal SIGCONT ao processo do Antimicro.

Se seguir o caminho de criar um segundo script, poderia criar um variável de estado para marcar o status do Antimicro, se rodando ou não e, depois do looping com while, testar sempre esta variável para decidir o que fazer, exemplo:


retroarch='Retroarch'
antimicro='Antimicro'
antimicro_status=1 # assumindo que sempre esta rodando

while sleep 1; do
if pgrep $retroarch &>/dev/null; then
echo "$retroarch is running"
if [[ $antimicro_status == 1 ]]; then
echo "$antimicro is running"
pkill -STOP -- $antimicro && antimicro_status=0
fi
else
echo "$retroarch isn't running"
if [[ $antimicro_status == 0 ]]; then
echo "$antimicro isn't running"
pkill -CONT -- $antimicro && antimicro_status=1
fi
fi
done
Observações:

1. Não é seguro utilizar pgrep com os nomes dos processos. O PID é mais seguro.
2. É bem provável que este exemplo de monitor não funcione no seu ambiente.
3. Nunca usei Ubuntu.
4. Nunca havia ouvido falar de Antimicro ou Retroarch :P.

[]'s
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
http://perspicazsite.wordpress.com

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder