Окно скрыто, но процесс запущен [закрыт]

Как мне восстановить окна для данного pid? Это было бы полезно в некоторых ситуациях, когда пропадает окно определенной программы (иногда бывает у меня).

Например, каждый раз, когда я собираюсь закрыть шестнадцатеричный чат, отображается диалоговое окно для подтверждения. Если я нажму «Отмена», окно все равно исчезнет, ​​но процесс продолжится в фоновом режиме. (Я могу pgrep это id).

Можно ли восстановить окно, если я знаю pid?

13
задан 3 May 2014 в 20:33

5 ответов

Если процесс находится просто в фоновом режиме, возможно, этот ответ подходит и здесь:

Используйте fg, чтобы вернуть процесс на передний план.

Смотрите полный ответ для получения дополнительных инструкций.

0
ответ дан 3 May 2014 в 20:33

Как объяснил Брэндон Роудс, если окно уничтожено / скрыто его родительским процессом, нет способа восстановить / восстановить / показать его извне процесса или самого приложения.

Вы можете подтвердить это из диспетчера окон, попробуйте: wmctrl -l -p, нет окна, связанного с его PID.

Итак, возможно, что hexchat все еще реагирует, попробуйте:

hexchat -e --command="gui show"

-e Открыть URL или выполнить команду в существующем HexChat

Ссылки:

[ 1116]
  • man hexchat
  • Документация HexChat 2.9.6.1: Управление графическим интерфейсом
  • man wmctrl
    0
    ответ дан 3 May 2014 в 20:33

    К сожалению, нет - как правило, нет способа заставить приложение X Windows повторно подключиться к оконной системе, если оно теряет соединение и его окно разрушается. И окна обычно исчезают только в случае ошибки в самой программе - в этом случае процесс, вероятно, находится в зависшем состоянии, не зная его, ожидая ввода-вывода, который никогда не произойдет, потому что он не осознает, что его окно исчезло .

    Если приложение не очень редкого дизайна и не позволяет отправлять ему специальный сигнал или сообщение для повторного подключения к X-серверу, или перестраивать новое окно, или если оно все еще присутствует на экране где-либо в виде значка или закреплено значок, и вы можете взаимодействовать с ним таким образом, процесс программы должен быть просто убит, и вы должны перезапустить его.

    Поведение закрытия последнего окна без выхода из процесса обычно является ошибкой, о которой вы можете сообщить в апстрим о приложении.

    (Примечание: бывают редкие исключения, например, веб-браузеры, которые поддерживают запущенный процесс даже после закрытия их последнего окна - но в этих случаях повторный щелчок по значку браузера или повторный запуск из командной строки просто говорит уже запущенный процесс для открытия нового окна. Опять же, приложение должно быть специально написано для обработки временного отсутствия окон, если это должно сработать.)

    0
    ответ дан 3 May 2014 в 20:33

    Я не знаю hexchat, но, возможно, программа использует иконку в трее, которая позволяет вернуть главное окно. К сожалению, в Linux есть несколько лотков, и не все из них работают вместе.

    У меня была такая проблема с программой RadioTray, которая больше не появлялась после обновления до Xubuntu 14.04. Решение было перенастроить его (файл ~ / .local / share / radiotray / config.xml имел опцию 'gui_engine' с 3 возможными значениями 'appindicator', 'systray' и 'chooser').

    Если это не помогает, попробуйте проверить параметры / предпочтения вашего приложения. Возможно, вы найдете опцию «Свернуть в трей». Отключите его и попробуйте снова закрыть окно.

    0
    ответ дан 3 May 2014 в 20:33

    Вы можете попробовать Ctrl + Alt + Del, а затем завершить процесс. Надеюсь это поможет. Это то, что я делаю, когда программа в Ubuntu зависает или ведет себя смешно.

    0
    ответ дан 3 May 2014 в 20:33

    Другие вопросы по тегам:

    Похожие вопросы: