Как уничтожить винные процессы, когда они отказывают, или движение должны отказать?

Иногда это происходит что Вино сбои приложения (замедляющий систему и делающий его почти неприменимый). В большинстве случаев я могу закрыть программу с xkill, но когда-то я должен перезапустить, поскольку Ubuntu, кажется, не отвечает очень хорошо (единственная вещь, которая работы является ALT+F2, средством запуска; xkill не делает). Я попытался использовать wineboot -r или -f но они, кажется, не работают очень хорошо.. Если что-то неясно, сообщите мне, что я попытаюсь объяснить лучше :)

15
задан 9 July 2012 в 06:34

5 ответов

killall nameofexefile.exe

точно так же, как процессы Linux

13
ответ дан 23 November 2019 в 02:38

Можно безопасно уничтожить винные сессии или через ALT+F2 или через терминал путем ввода

wineserver -k

Если это, действительно не хочет завершать работу затем, можно вызвать его через

wineserver -k9
34
ответ дан 23 November 2019 в 02:38

Я как раз собирался иметь ту же проблему. Эта команда в терминале помогла мне. Нажмите Ctrl + Высокий звук + t и затем запишите следующее:
ps -x | grep "Your program name" | awk '{print $1}' | xargs kill

Ваше название программы должно быть записано без кавычек, Оно помогло мне решающий oblivion.exe:
ps -x | grep Oblivion | awk '{print $1}' | xargs kill

1
ответ дан 23 November 2019 в 02:38

Ну, как винный программист, я часто буду munge целая проклятая вещь, таким образом, я буду использовать свой супер специальный killwine сценарий. Это - трудная смерть (wineserver -k хороший путь состоит в том, чтобы сделать это и всегда предпочитаемый).

#!/bin/bash

wine_cellar="${HOME}/.local/share/wine"

if (($#)); then
    if [[ -e "${wine_cellar}/$1" ]]; then
        WINEPREFIX="${wine_cellar}/$1"
        shift
    elif [[ "${1:0:1}" != "-" ]]; then
        echo "ERROR: Didn't understand argument '$1'?" >&2;
        exit 1
    fi
fi

if ((${#WINEPREFIX})); then
    pids=$(
        grep -l "WINEPREFIX=${WINEPREFIX}$" $(
            ls -l /proc/*/exe 2>/dev/null |
            grep -E 'wine(64)?-preloader|wineserver' |
            perl -pe 's;^.*/proc/(\d+)/exe.*$;/proc/$1/environ;g;'
        ) 2> /dev/null |
        perl -pe 's;^/proc/(\d+)/environ.*$;$1;g;'
    )
else
    pids=$(
        ls -l /proc/*/exe 2>/dev/null |
        grep -E 'wine(64)?-preloader|wineserver' |
        perl -pe 's;^.*/proc/(\d+)/exe.*$;$1;g;'
    )
fi

if ((${#pids})); then
    set -x
    kill $* $pids
fi

Это предполагает, что Вы - винные префиксы, находятся под ~/.local/share/wine. Примеры использования:

killwine                       # Just kill all instances of wine
killwine -9                    # Hard kill them all
killwine lotro                 # Only kill wine under ${HOME}/.local/share/wine/lotro
killwine -INT lotro            # Same as above, but use SIGINT
WINEPREFIX=/tmp/crap killwine  # Kill only the instance under /tmp/crap
sudo reboot                    # Pretend you're running windows.

Я не знаю, но я не думаю, что Вы будете часто заканчивать с различными процессами, подвешенными в памяти (что этот сценарий заботится о) на нормальном или даже normal+staging выпуск, но я делаю довольно много из-за взламывания сервера и ntdll.

Править: Этот сценарий будет только работать над основанной на Linux ОС и предполагает, что proc файловая система смонтирована на/proc и т.д.

4
ответ дан 23 November 2019 в 02:38

Моя версия:

ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | perl -pe 's;^.*/proc/(\d+)/exe.*$;$1;g;' | xargs -n 1 kill

Это уничтожает все винные процессы. Благодаря этому сообщению https://askubuntu.com/a/732320/605355

2
ответ дан 23 November 2019 в 02:38

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

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