Как убить винные процессы, когда они терпят крах или собираются потерпеть крах?

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

13
задан 9 July 2012 в 18:34

44 ответа

killall nameofexefile.exe

так же, как процессы в linux

13
ответ дан 25 July 2018 в 21:36
killall nameofexefile.exe

так же, как процессы в linux

13
ответ дан 31 July 2018 в 10:42
killall nameofexefile.exe

так же, как процессы в linux

13
ответ дан 2 August 2018 в 03:13
killall nameofexefile.exe

так же, как процессы в linux

13
ответ дан 4 August 2018 в 19:07
killall nameofexefile.exe

так же, как процессы в linux

13
ответ дан 6 August 2018 в 03:25
killall nameofexefile.exe

так же, как процессы в linux

13
ответ дан 7 August 2018 в 21:12
killall nameofexefile.exe

так же, как процессы в linux

13
ответ дан 10 August 2018 в 09:30
killall nameofexefile.exe

так же, как процессы в linux

13
ответ дан 13 August 2018 в 12:59
  • 1
    это только для вина или для всех запущенных процессов в Linux? – 13east 9 July 2011 в 06:22
  • 2
    это убьет любой процесс, Windows через Wine или Linux – Conor Rynne 9 July 2011 в 11:41
  • 3
    Таким образом, wineserver -k уничтожит все процессы Wine ... это то, что я имел в виду ... Я не использую killall & lt; file & gt; .exe, так как часто не знаю точное имя файла (и когда система переходит сумасшедший я не узнаю ни в коем случае) – Hadden 10 July 2011 в 05:49
  • 4
    аааа, тогда в этом случае Wineserver -k, вероятно, сделает эту работу. Только будьте осторожны, у вас нет других открытых винных процессов, в том числе программ в PlayOnLinux и Crossover. – Conor Rynne 10 July 2011 в 15:41

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

wineserver -k

Если он действительно не хочет выключения, вы можете заставить его через

wineserver -k9
22
ответ дан 25 May 2018 в 19:54

Ну, как программист по вине, я часто буду черпать всю эту чертову вещь, поэтому я использую свой супер специальный сценарий 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.

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

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

4
ответ дан 25 May 2018 в 19:54
  • 1
    Работает как шарм, в то время как wineserver -k или -k9 не удалось. – Michael-A-D 4 January 2017 в 04:23
  • 2
    Ах, спасибо! Кажется, я потерял свою копию этого сценария, и теперь у меня есть это снова! Я должен упомянуть, что это будет работать только на ОС на базе Linux, поскольку оно прорывается через / proc. – Daniel Santos 5 January 2017 в 08:55

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

Ваше имя программы должно быть записано без кавычек. Это помогло мне решить oblivion.exe: ps -x | grep Oblivion | awk '{print $1}' | xargs kill [ ! d2]

1
ответ дан 25 May 2018 в 19:54

Моя версия:

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

1
ответ дан 25 May 2018 в 19:54
  • 1
    lol, это фрагмент из моего скрипта! :) Они просто изменили его на трубку на xargs, а не на bash sub-shell - это хорошо, потому что он также будет работать с / bin / sh. У меня все еще были некоторые процессы, которые не умирают, хотя, когда они зависают до завершения процесса инициализации в ntdll. Может быть, я должен попытаться представить свой сценарий или какое-то воплощение его в mainline. EDIT: О, я вижу, это ваша измененная версия :) – Daniel Santos 17 February 2018 в 16:11

Моя версия:

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

1
ответ дан 25 July 2018 в 21:36

Вы можете безопасно завершить винные сессии либо через ALT + F2, либо через терминал, набрав

wineserver -k

Если он действительно не хочет выключаться, вы можете принудительно вызвать его через

wineserver -k9
24
ответ дан 25 July 2018 в 21:36

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

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

1
ответ дан 25 July 2018 в 21:36

Ну, как винный программист, я часто запутываю всю эту чертову штуку, поэтому я использую свой суперспециальный скрипт 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.

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

РЕДАКТИРОВАТЬ: Этот сценарий будет работать только на ОС на базе Linux и предполагает, что файловая система proc смонтирована на / proc и т. д.

4
ответ дан 25 July 2018 в 21:36

Моя версия:

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

1
ответ дан 31 July 2018 в 10:42

Вы можете безопасно завершить винные сессии либо через ALT + F2, либо через терминал, набрав

wineserver -k

Если он действительно не хочет выключаться, вы можете принудительно вызвать его через

wineserver -k9
24
ответ дан 31 July 2018 в 10:42

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

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

1
ответ дан 31 July 2018 в 10:42

Ну, как винный программист, я часто запутываю всю эту чертову штуку, поэтому я использую свой суперспециальный скрипт 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.

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

РЕДАКТИРОВАТЬ: Этот сценарий будет работать только на ОС на базе Linux и предполагает, что файловая система proc смонтирована на / proc и т. д.

4
ответ дан 31 July 2018 в 10:42

Моя версия:

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

1
ответ дан 2 August 2018 в 03:13

Вы можете безопасно завершить винные сессии либо через ALT + F2, либо через терминал, набрав

wineserver -k

Если он действительно не хочет выключаться, вы можете принудительно вызвать его через

wineserver -k9
24
ответ дан 2 August 2018 в 03:13

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

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

1
ответ дан 2 August 2018 в 03:13

Ну, как винный программист, я часто запутываю всю эту чертову штуку, поэтому я использую свой суперспециальный скрипт 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.

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

РЕДАКТИРОВАТЬ: Этот сценарий будет работать только на ОС на базе Linux и предполагает, что файловая система proc смонтирована на / proc и т. д.

4
ответ дан 2 August 2018 в 03:13

Моя версия:

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

1
ответ дан 4 August 2018 в 19:07

Вы можете безопасно завершить винные сессии либо через ALT + F2, либо через терминал, набрав

wineserver -k

Если он действительно не хочет выключаться, вы можете принудительно вызвать его через

wineserver -k9
24
ответ дан 4 August 2018 в 19:07

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

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

1
ответ дан 4 August 2018 в 19:07

Ну, как винный программист, я часто запутываю всю эту чертову штуку, поэтому я использую свой суперспециальный скрипт 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.

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

РЕДАКТИРОВАТЬ: Этот сценарий будет работать только на ОС на базе Linux и предполагает, что файловая система proc смонтирована на / proc и т. д.

4
ответ дан 4 August 2018 в 19:07

Моя версия:

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

1
ответ дан 6 August 2018 в 03:25

Вы можете безопасно завершить винные сессии либо через ALT + F2, либо через терминал, набрав

wineserver -k

Если он действительно не хочет выключаться, вы можете принудительно вызвать его через

wineserver -k9
24
ответ дан 6 August 2018 в 03:25

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

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