Bem, como programador de vinhos, muitas vezes vou estragar tudo, então uso meu script super especial de killwine. Esta é uma morte difícil ( wineserver -k
é a melhor maneira de fazê-lo e sempre a preferida).
#!/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
Isso pressupõe que você esteja com prefixos de vinho ~/.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.
Não sei, mas acho que muitas vezes você acaba com vários processos travados na memória (do que esse script trata) em uma versão de teste normal ou até normal +, mas eu faço muito por causa de hackear o servidor e ntdll.
EDIT: Este script funcionará apenas em um sistema operacional baseado em Linux e pressupõe que o sistema de arquivos proc esteja montado em / proc, etc.