Вікно приховано, але процес запущений [закрито]


13

Як я можу відновити вікна для заданого під-коду? Було б корисно в деяких ситуаціях, коли вікно певної програми зникає (трапляється зі мною іноді).

Наприклад, кожного разу, коли я збираюся закрити шестигранну кнопку, вона показує діалогове вікно для підтвердження. Якщо я натискаю Скасувати, це вікно все-таки пропаде, але процес продовжується у фоновому режимі. (Я можу pgrep це id).

Чи можливо відновити вікно, враховуючи, що я знаю pid?


Ви це зрозуміли? Це все ще трапляється час від часу - схоже, у них проблеми з виправленням цього.
Джейсон Клебан

Я точно не пам’ятаю. Довелося на деякий час повернутися до вікон. Я думаю, хтось сказав мені в чаті, що це було зафіксовано на галузі розвитку на той час. Але якщо ти скажеш, що все-таки трапляється, то помилка все-таки є ... Вибачте, що не допоможу.
користувачEng15

Я використовую xdotool, може спрацювати. 'xdotool search -name hexchat', і 'xdotool windowactivate theWindowId'
zayn

Відповіді:


3

На жаль, ні - взагалі немає способу отримати програму X Windows для підключення до системи вікон, якщо вона втратить зв'язок і її вікно зруйновано. І вікна, як правило, зникають лише у тому випадку, коли в самій програмі є помилка - у цьому випадку процес, ймовірно, знаходиться у виснованому стані, не знаючи цього, чекаючи вводу / виводу, який ніколи не відбудеться, оскільки він не усвідомлює, що його вікно відійшло .

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

Поведінка закриття останнього вікна без виходу з процесу, як правило, є помилкою, про яку можна повідомити вище про програму.

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


3

Як пояснив Брендон Родос, якщо вікно зруйновано / приховано його батьківським процесом, жоден спосіб відновити / відтворити / показати його не за межами самого процесу чи програми.

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

Отже, можливо, що hexchatвсе-таки чуйний, спробуйте:

hexchat -e --command="gui show"

-e Відкрийте URL-адресу або виконайте команду в існуючому HexChat

Список літератури:


1
Працювали чудово.
amar

1

Якщо процес просто у фоновому режимі, можливо, ця відповідь підходить і тут:

Використовуйте fgдля повернення процесу на перший план.

Дивіться повну відповідь для отримання додаткових інструкцій.


1

Я не знаю hexchat, але, можливо, програма використовує значок лотка, який дає можливість повернути головне вікно. На жаль, на Linux є декілька реалізацій лотка, і не всі вони працюють разом.

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

Якщо це не допомагає, спробуйте перевірити параметри / уподобання програми. Можливо, ви знайдете опцію "Звести до лотка". Відключіть його і спробуйте закрити вікно ще раз.


0

Ви можете спробувати Ctrl + Alt + Del, а потім закінчити процес. Сподіваюсь, це допомагає. Це те, що я роблю, коли програма в Ubuntu замерзає або діє мені смішно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.