Como aumentar o tempo de espera de programas que não respondem?

Como aumentar o tempo de espera de programas que não respondem?

Instalei um Ubuntu GNOME e descobri que estou recebendo muitas mensagens de PROGRAM não respondendo.

Tenho que "Forçar o encerramento" do programa ou "Aguardar" um pouco mais.

Percebi que cada vez que espero pelo programa, ele continua sem problemas.

Então eupensarpode haver uma configuração de "tempo limite" para que os programas sejam considerados sem resposta e quero aumentar esse tempo limite.

Responder1

Não foi possível configurá-lo porque otempo esgotadoo valor é definido como um valor constante na fonte do murmúrio. gnome-shell refere-se à biblioteca mutter. Encontrei o valor do tempo limite na fonte mutter, mutter-3.10.4/src/core/display.c.

...
#define PING_TIMEOUT_DELAY 5000

E é usado por uma função abaixo chamada meta_display_ping_window

ping_data->ping_timeout_id = g_timeout_add (PING_TIMEOUT_DELAY, meta_display_ping_timeout, ping_data);

É referido pela função quando a janela é ativada:

window_activate(mutter-3.10.4/src/core/window.c) -> meta_window_check_alive(mutter-3.10.4/src/core/delete.c) -> meta_display_ping_window(mutter-3.10.4/src/core/display.c)

Como você pode ver acima, o tempo limite é de 5 segundos.

Você pode modificar o valor apenas para você porque mutter é um projeto de código aberto.

E o valor do tempo limite é referido em outro caso quando a janela é fechada. O fluxo de exclusão de janela é como

meta_window_delete(mutter-3.10.4/src/core/delete.c) -> meta_window_check_alive(mutter-3.10.4/src/core/delete.c) -> meta_display_ping_window(mutter-3.10.4/src/core/display.c)

No entanto, acho que você precisa modificar a fonte da sua janela atrasada. Ou acho que você pode discutir sobre isso com os desenvolvedores/mantenedores do murmúrio.

Você pode preparar o ambiente de construção e obter a fonte com os seguintes comandos.

$ sudo apt-get build-dep mutter
$ sudo apt-get source mutter

Para construí-lo, consulte

https://www.debian.org/doc/manuals/apt-howto/ch-sourcehandling.en.html https://wiki.debian.org/BuildingTutorial

Responder2

Use pode alterar o valor do mutter via dconf (/org/gnome/mutter/check-alive-timeout) - o padrão é 5000.

Responder3

Este bug foi corrigido. Um backport foi lançado para Ubuntu 18 como gnome-shell 3.28.4 em 6/6/2019. VerComo desativar a caixa de diálogo "A janela não responde"

Responder4

Não sei se responder a esta velha pergunta faz algum sentido, mas talvez para alguém seja útil.

Tentei construir a biblioteca mutter a partir do código-fonte, mas desisti, porque essa biblioteca depende de muitas outras bibliotecas, e essas bibliotecas também dependem de outras bibliotecas.

Eu precisava de uma maneira de fechar esta caixa de diálogo uma vez, caso ela aparecesse, mas não consegui fechá-la novinhoaplicativo. Então eu escrevi um pequeno script no bash, que matará esta janela se ela aparecer.

#!/bin/bash 

while [  true ]; do
    VAL=$(ps -fA | grep "class mutter-dialog" | grep -cv grep)

    if [ $VAL -eq 1 ]
    then
            ID=$(ps -fA | grep "class mutter-dialog" | grep -v grep | awk '{print $2}')
            sleep 5
            echo killing $ID
            kill $ID
            exit 0
    fi

    sleep 10
done

informação relacionada