Wie kann die Wartezeit für nicht reagierende Programme erhöht werden?

Wie kann die Wartezeit für nicht reagierende Programme erhöht werden?

Ich habe ein Ubuntu GNOME installiert und festgestellt, dass ich viele Meldungen vom Typ „PROGRAMM reagiert nicht“ erhalte.

Ich muss das Programm entweder zwangsweise beenden oder noch ein wenig warten.

Mir ist aufgefallen, dass das Programm jedes Mal, wenn ich darauf warte, letztendlich ohne Probleme fortgesetzt wird.

Also, ichdenkenMöglicherweise gibt es eine „Timeout“-Konfiguration für Programme, die als nicht reagierend betrachtet werden, und ich möchte dieses Timeout erhöhen.

Antwort1

Es konnte nicht konfiguriert werden, da dieAuszeitDer Wert ist in der Mutter-Quelle als konstanter Wert definiert. Gnome-Shell bezieht sich auf die Mutter-Bibliothek. Ich habe den Timeout-Wert in der Mutter-Quelle gefunden, mutter-3.10.4/src/core/display.c.

...
#define PING_TIMEOUT_DELAY 5000

Und es wird von einer Funktion namens meta_display_ping_window verwendet

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

Darauf wird von der Funktion verwiesen, wenn das Fenster aktiviert wird:

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)

Wie Sie oben sehen können, beträgt das Timeout 5 Sekunden.

Sie können den Wert nur für sich ändern, da Mutter ein Open-Source-Projekt ist.

Und der Timeout-Wert wird in einem anderen Fall angegeben, wenn das Fenster geschlossen wird. Der Fensterlöschablauf ist wie folgt

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)

Ich denke jedoch, dass Sie die Quelle für Ihr verzögertes Fenster ändern müssen. Oder ich denke, dass Sie dies mit den Entwicklern/Betreuern von Mutter besprechen können.

Sie können die Build-Umgebung vorbereiten und die Quelle mit den folgenden Befehlen abrufen.

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

Um es zu erstellen, siehe

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

Antwort2

Sie können den Mutter-Wert über dconf ändern (/org/gnome/mutter/check-alive-timeout) – der Standardwert ist 5000.

Antwort3

Dieser Fehler wurde behoben. Ein Backport für Ubuntu 18 wurde am 6.6.2019 als gnome-shell 3.28.4 veröffentlicht. SieheSo deaktivieren Sie den Dialog „Fenster reagiert nicht“

Antwort4

Ich weiß nicht, ob es irgendeinen Sinn macht, diese alte Frage zu beantworten, aber vielleicht ist es für jemanden hilfreich.

Ich habe versucht, die Mutter-Bibliothek aus dem Quellcode zu erstellen, habe es aber aufgegeben, weil diese Bibliothek von vielen anderen Bibliotheken abhängt und diese Bibliotheken wiederum von anderen Bibliotheken abhängen.

Ich brauchte eine Möglichkeit, diesen Dialog zu schließen, wenn er einmal erscheint, aber ich konnte ihn nicht schließen in derWeinAnwendung. Also habe ich ein kleines Skript in Bash geschrieben, das dieses Fenster schließt, wenn es erscheint.

#!/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

verwandte Informationen