Убийство 'wineserver' не закрывает GUI винных приложений
Когда некоторые приложения, работающие в Wine, аварийно завершают работу, я обычно просто убиваю процесс 'wineserver', поскольку я не могу правильно определить конкретные имена процессов в приложении Windows (если они даже работают в разных процессах - я не уверен, я мало что знаю об этом материал).
Однако это только освобождает мое использование процессора, так как GUI все еще открыты и доступны через тире, даже если они не отвечают. Итак, мой вопрос: какой процесс я должен убить, чтобы избавиться от артефактов из не работающих программ Wine?
1 ответ
Это нормально, потому что когда вы запускаете приложение Wine, оно фактически загружает другие приложения для совместной работы, каждое из которых является собственным родителем (не связанным), и каждое создает своих собственных дочерних элементов. Таким образом, чтобы эффективно убить все процессы, связанные с Wine, вам нужно использовать wineserver
Команда, которая приходит с вином.
Вместо sudo kill -9 wineAppProcessID
ты бы побежал wineserver -k
-k
Параметр отправляет сигнал SIGINT (Процесс прерывания). В случае, если это не работает, сигнал повышается до SIGKILL (Kill Process Immediately), аналогично Kill -9
,
Разница в том, что wineserver
будет на самом деле искать и убивать все процессы Wine. Это хорошо только в том случае, если вы хотите уничтожить ВСЕ винные процессы (все винные приложения, запущенные одновременно).
Вот изображение pstree -g
при запуске приложения Wine (в данном случае STALKER Call of Pripyat)
Если я сделаю sudo kill -9 8462
это только убьет винсервер и оставит меня с окном GUI, застрявшим в режиме зомби. Если я однако сделаю wineserver -k
он корректно уничтожит все процессы, связанные с Wine (8491, 8468 и 8462). Для получения дополнительной информации о других командах, относящихся к Wine, см. Как установить и настроить Wine? где я приложил некоторые усилия для компиляции почти всех полезных команд, wineserver
быть одним из них.