Exemplo de caso de uso:
Executo o Chromium com algumas guias abertas e decido que não preciso acessar o aplicativo pelos próximos 20 minutos. Para economizar o tempo de bateria do laptop, eu gostaria de hibernar (congelar) o Chromium sem precisar fechar o aplicativo (reabrir e recarregar todas as guias requer tempo que eu gostaria de economizar ao hibernar).
killall
solução realmente elegante. :)Respostas:
Você pode usar o
killall
comando para enviar umSIGSTOP
sinal a todos os processos correspondentes a um determinado nome para congelá-los e, posteriormente, enviarSIGCONT
da mesma maneira para descongelá-los novamente.Primeiro descubra o nome do processo usando
pgrep -l SEARCH_PATTERN
:Observe que ele irá aparar nomes longos, portanto,
r
está faltando. Mas isso não é um problema, pois você pode usar a Tabconclusão para inserir o nome do processo, que será concluído automaticamente.Então você envia o
SIGSTOP
sinal para todos os processos nomeadoschromium-browser
assim:A janela do Chromium ficará acinzentada como se não respondesse. Bem, realmente ficou sem resposta, então isso era de se esperar. Você não pode interagir com a janela de forma alguma agora (exceto a barra de menus e a minimização, etc., que são gerenciadas pelo gerenciador de janelas e não pelo próprio aplicativo). Mas os eventos de clicar nos botões etc. ainda são gerados e adicionados à fila de eventos do aplicativo, para que todos sejam processados de uma só vez quando você descongelar o aplicativo novamente!
Você derrete o aplicativo novamente simplesmente executando este comando que envia o
SIGCONT
sinal para os processos especificados:Às vezes, o congelamento de um aplicativo dessa maneira pode causar uma falha, portanto, verifique se coisas importantes foram salvas antes de congelar um aplicativo.
Em casos raros, até o ambiente da área de trabalho / o gerenciador de janelas / qualquer outra coisa também pode deixar de responder. Nesse caso, você precisa descongelar o aplicativo congelado por meio de um TTY:
Pressione Ctrl+ Alt+ F1para mudar para TTY1. Você será solicitado a fazer login, então digite seu nome de usuário e senha. Em seguida, execute o comando para descongelar o aplicativo da mesma maneira que o executaria no emulador de terminal normal. Depois disso, volte para a área de trabalho (TTY7) usando Ctrl+ Alt+ F7e você ficará bem novamente.
fonte
pgrep
, você poderia ter continuado compkill
SIGSTOP
exista o risco de o aplicativo travar , eu diria que é menor. Costumo usá-lo no Chromium e não me lembro de ter sido o motivo de uma falha.killall
! ;-)Para suspender, tente:
killall -SIGTSTP chromium-browser
Se isso não funcionar, tente a versão enérgica:
killall -SIGSTOP chromium-browser
.De qualquer maneira, para continuar usando
killall -SIGCONT chromium-browser
. Eu tentei com o Firefox e funcionou. Observe, no entanto, que se você clicar nos botões do Chromium enquanto estiver suspenso, ele executará essas coisas assim que você continuar a execução.fonte
chromium-browser
como o nome do processo. 1google-chrome
se você usa o Google Chrome, já que a diferença é aparentemente confusaVocê pode tentar o seguinte (em um terminal):
Então você verá algo assim:
Anote o número 7166 (ou qualquer que seja o número) e faça:
Isso suspenderá a execução do processo. Ele não liberará imediatamente a memória usada por ele, mas a memória estará disponível para outros processos, se necessário.
Então faça
kill -CONT 7166
para trabalhar com o programa novamente.Observe que você precisa alterar 7166, onde apropriado.
fonte