Como matar processos de vinho quando eles batem ou vão colidir?

13

Às vezes, acontece que um aplicativo do Wine falha (abrandando o sistema e tornando-o quase inutilizável). Na maioria dos casos eu sou capaz de matar o programa com xkill , mas em algum momento eu tenho que reiniciar pois o Ubuntu parece não responder muito bem (a única coisa que funciona é ALT + F2 , o lançador; xkill não). Eu tentei usar wineboot -r ou -f , mas eles não parecem funcionar muito bem .. Se algo não estiver claro, deixe-me saber que vou tentar explicar melhor:)

    
por Hadden 08.07.2011 / 19:41

5 respostas

13
killall nameofexefile.exe

assim como os processos do Linux

    
por Conor Rynne 08.07.2011 / 19:52
22

Você pode matar com segurança as sessões de vinho por meio de ALT + F2 ou por meio de um terminal digitando

wineserver -k

Se realmente não quiser desligar, você pode forçá-lo via

wineserver -k9
    
por fossfreedom 08.07.2011 / 19:59
4

Bem, como um programador de vinhos, muitas vezes eu vou agitar toda a maldita coisa, então eu uso o meu script super especial killwine. Esta é uma morte difícil ( wineserver -k é a melhor maneira de fazer isso e sempre preferiu).

#!/bin/bash

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

if (($#)); then
    if [[ -e "${wine_cellar}/" ]]; then
        WINEPREFIX="${wine_cellar}/"
        shift
    elif [[ "${1:0:1}" != "-" ]]; then
        echo "ERROR: Didn't understand argument ''?" >&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//environ;g;'
        ) 2> /dev/null |
        perl -pe 's;^/proc/(\d+)/environ.*$;;g;'
    )
else
    pids=$(
        ls -l /proc/*/exe 2>/dev/null |
        grep -E 'wine(64)?-preloader|wineserver' |
        perl -pe 's;^.*/proc/(\d+)/exe.*$;;g;'
    )
fi

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

Isso pressupõe que seus prefixos de vinho estão abaixo de ~/.local/share/wine . Exemplos de uso são:

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.

Eu não sei, mas eu não acho que muitas vezes você vai acabar com vários processos pendurados na memória (o que este script cuida) em uma versão normal ou mesmo normal + de teste, mas eu faço bastante muito por causa do hacking do servidor e do ntdll.

EDIT: Este script só funcionará em um SO baseado em Linux e assumirá que o sistema de arquivos proc está montado em / proc, etc.

    
por Daniel Santos 11.02.2016 / 06:54
1

Eu estava prestes a ter o mesmo problema. Este comando no terminal me ajudou. Pressione Ctrl + Alt + te escreva o seguinte:% ps -x | grep "Your program name" | awk '{print }' | xargs kill

O nome do seu programa deve ser escrito sem aspas , Isso me ajudou a resolver o oblivion.exe:
ps -x | grep Oblivion | awk '{print }' | xargs kill

    
por Luke359 26.01.2015 / 11:36
1

Minha versão:

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

Ele mata todos os processos do vinho. Graças a este post link

    
por Andrey Dovbyshko 22.06.2017 / 15:09

Tags