Как увеличить время ожидания не отвечающих программ?

24

Я установил Ubuntu GNOME и обнаружил, что программа PROGRAM не отвечает на сообщения.

Я должен либо «Принудительно выйти» из программы, либо «подождать» ее немного больше.

Я заметил, что каждый раз, когда я жду программу, программа в конечном итоге продолжается без проблем.

Итак, я думаю, что может быть конфигурация «тайм-аут» для программ, которые будут считаться неотвечающими, и я хочу увеличить этот тайм-аут.

malhobayyeb
источник
Та же проблема здесь. Я часто работаю с сетевым каталогом, и мое сообщение пришло в большинстве случаев непосредственно перед сохранением файла. Так что мне нужно просто нажать на ожидание. Я ищу решение с помощью gnome-shell.
Вилли
Я также сталкиваюсь с той же проблемой, однако я выяснил, где именно проблема лежит. Хотите сотрудничать в исправлении этого? tuxdna.in/blog/2014/07/15/…
tuxdna
Запрос на добавление
Натаниэль М. Бивер,

Ответы:

14

Это не могло быть настроено, потому что значение тайм-аута определено как постоянное значение в источнике бормочущего. gnome-shell ссылается на библиотеку муттеров. Я нашел значение тайм-аута в источнике-муттере, 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)

Тем не менее, я думаю, что вам нужно изменить источник для вашего задержанного окна. Или я думаю, что вы можете обсудить это с разработчиками / сопровождающими.

Вы можете подготовить среду сборки и получить исходный код с помощью следующих команд.

$ 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

xiaodongjie
источник
-1

Я не знаю, имеет ли смысл отвечать на этот старый вопрос, но, возможно, кому-то это будет полезно.

Я пытался собрать библиотеку мутантов из источника, но я отказался, потому что эта библиотека зависит от многих других библиотек, и эти библиотеки также зависят от других библиотек.

Мне нужен был способ закрыть это диалоговое окно, если оно появилось, но я не смог закрыть его в приложении Wine . Поэтому я написал небольшой скрипт на 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
Том
источник