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

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

Jefferson
enterprisejeffer

(usa Ubuntu)

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.


  


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

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

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







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts