Mate o navegador quando a tela de bloqueio

1

Estou executando o xubuntu em um computador compartilhado de baixo custo. Eu gostaria de executar um script que mata o navegador (firefox e chromium) sempre que o usuário bloqueia a tela, para que outros usuários possam usar os recursos.

Eu acredito que isso não é muito difícil de fazer, mas eu não tenho experiência nisso. Alguém pode ajudar, eu acho que um pequeno script deve fazer isso?

Obrigado a todos.

    
por redfiloux 07.04.2015 / 18:47

3 respostas

4

Como você usa um sistema com poucos recursos, imagino que o screenlocker padrão seja o xlock sem qualquer proteção de tela ativada. Nesse caso, você terá que editar o comando para bloqueio de tela de "xlock" para "xlock & pkill firefox" ou "xlock & pkill crromium". Eu não sei mais sobre isso, mas basicamente se você adicionar "& &" após um comando, você pode colocar outro que será executado somente quando o primeiro estiver pronto (por exemplo, quando o xlock sai do desbloqueio da tela) ).

    
por 07.04.2015 / 19:04
1

Escreva um protetor de tela.

Isso não é tão louco quanto parece. O Xlock usa protetores de tela para desenhar na tela que não fazem parte do bloqueio de tela para que você possa escrever um script de shell simples que mata o navegador, em seguida,exec s outro protetor de tela para desenhar na tela e definir xlock para usar esse script como protetor de tela. Eu provavelmente poderia baixá-lo para cerca de cinco linhas.

    
por 07.04.2015 / 19:18
0
O comando

kill no Linux pode enviar muitos sinais diferentes para um processo. Um deles poderia ser STOP, que congelaria esse processo até você enviar um sinal CONT. Tudo isso sem matar ninguém.

Se você realmente quiser matar, use o sinal TERM.

Vários navegadores abertos podem compartilhar memória e, como outros sugeriram, eu não gostaria que meu navegador fosse fechado e minha pesquisa fosse perdida.

Desperdiçando CPU quando não há ninguém fazendo algo ... isso é diferente.

Há muito tempo, criei um script que faria isso; congelar & descongele navegadores seguindo o status do protetor de tela.

Parte do código veio do link

Eu copio o exemplo aqui:

#!/usr/bin/perl

my $blanked = 0;
open (IN, "xscreensaver-command -watch |");
while (<IN>) {
    if (m/^(BLANK|LOCK)/) {
        if (!$blanked) {
            system "sound-off";
            $blanked = 1;
        }
    } elsif (m/^UNBLANK/) {
        system "sound-on";
        $blanked = 0;
    }
}

Você pode fazer a sinalização com

system "killall --ignore-case --quiet -s STOP iceweasel chromium firefox firefox-esr"; 

system "killall --ignore-case --quiet -s CONT iceweasel chromium firefox firefox-esr";

Agora você precisa colar as peças, adaptar-se ao seu protetor de tela e navegadores específicos e testar.

Outro exemplo poderia ser (novamente, dependendo do protetor de tela usado)

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" |
  while read x; do
    case "$x" in 
      *"boolean true"*) echo SCREEN_LOCKED;;
      *"boolean false"*) echo SCREEN_UNLOCKED;;
      *) echo OTHER_CASE;;  
    esac
  done

que vem de Executar script no bloqueio / desbloqueio da tela

    
por 16.01.2018 / 00:59