Ubuntu GNOME을 설치했는데 PROGRAM이 응답하지 않는다는 메시지가 많이 표시되는 것을 발견했습니다.
프로그램을 "강제 종료"하거나 조금 더 "대기"해야 합니다.
프로그램을 기다릴 때마다 프로그램이 결국 문제 없이 계속되는 것을 확인했습니다.
그래서 나는생각하다프로그램이 응답하지 않는 것으로 간주되는 "시간 초과" 구성이 있을 수 있으며 이 시간 초과를 늘리고 싶습니다.
답변1
구성할 수 없습니다.시간 초과값은 머터 소스의 상수 값으로 정의됩니다. 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