如何增加无响应程序的等待时间?

如何增加无响应程序的等待时间?

我已经安装了 Ubuntu GNOME 并发现我收到很多程序没有响应的消息。

我要么“强制退出”该程序,要么“等待”一会儿。

我注意到,每次我等待程序时,程序最终都会继续运行而不会出现问题。

所以我思考可能存在一个“超时”配置,以使程序被视为无响应,而我想增加这个超时时间。

答案1

无法配置,因为暂停value 在 mutter 源代码中定义为常量值。gnome-shell 引用 mutter 库。我在 mutter 源代码 mutter-3.10.4/src/core/display.c 中找到了超时值。

...
#define PING_TIMEOUT_DELAY 5000

它被下面的函数 meta_display_ping_window 使用

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

它是从窗口激活时的函数引用的:

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)

正如您上面看到的,超时时间为 5 秒。

由于 mutter 是开源项目,因此您可以修改该值。

并且超时值是窗口关闭时的另一种情况。窗口删除流程如下

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)

但是,我认为您需要修改延迟窗口的源代码。或者我认为您可以与 mutter 开发人员/维护人员讨论此事。

您可以使用以下命令准备构建环境并获取源代码。

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

要构建它,请参阅

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

答案2

可以通过 dconf (/org/gnome/mutter/check-alive-timeout) 更改 mutter 值 - 默认值为 5000。

答案3

此错误已修复。Ubuntu 18 的反向移植版本已于 2019-6-6 发布,名为 gnome-shell 3.28.4。请参阅如何禁用“窗口无响应”对话框

答案4

我不知道回答这个老问题是否有意义,但也许对某些人来说会有所帮助。

我尝试从源代码构建 mutter 库,但我放弃了,因为这个库依赖于许多其他库,而这些库也依赖于其他库。

我需要一种方法来关闭此对话框(如果它出现),但我无法在葡萄酒应用程序。所以我用 bash 写了一个小脚本,如果出现这个窗口,它会关闭它。

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

相关内容