mytosh
Lieutenant
- Registriert
- Feb. 2022
- Beiträge
- 840
Falls einer von euch das auch gebrauchen kann.
Tötet alle laufenden Instanzen von wine und/oder proton.
Tötet alle laufenden Instanzen von wine und/oder proton.
Code:
#!/bin/bash
# Beende den wineserver (falls aktiv)
echo "Beende Wine-Server..."
wineserver -k
# Beende alle Prozesse, die mit Wine oder Proton zu tun haben, aber nicht das eigene Skript
echo "Beende Wine- und Proton-Prozesse..."
ps -ef | grep -E -i '(wine|processid|\.exe)' | grep -v grep | grep -v "$$" | awk '{print $2}' | xargs -r kill -9 2>/dev/null
ps aux | grep -i '\.exe' | grep -v grep | grep -v "$$" | awk '{print $2}' | xargs -r kill -9 2>/dev/null
# Identifiziere den aktiven Wine-Kompatibilitätsordner (Proton)
echo "Suche aktives Wine-Kompatibilitätsverzeichnis..."
PFX=$(lsof | grep compatdata | grep 'pfx$' | awk '{print $NF}')
if [ -n "$PFX" ]; then
echo "Beende wineserver für WINEPREFIX: $PFX"
WINEPREFIX=$PFX wineserver -k
fi
# Beende Prozesse im Zusammenhang mit 'pressure-vessel-adverb'
echo "Beende Prozesse von pressure-vessel-adverb..."
killall -9 pressure-vessel-adverb 2>/dev/null || true
# Wiederhole das Beenden des Wine-Servers, um sicherzustellen, dass keine Prozesse mehr laufen
echo "Finales Beenden des Wine-Servers..."
wineserver -k
# Finde und beende alle Prozesse in Proton-PFX-Verzeichnissen
echo "Suche und beende alle Proton-Prozesse..."
find $HOME/.local/share/proton-pfx/* -maxdepth 0 -exec /bin/bash -c \
'export WINEPREFIX="{}"; /usr/bin/wineserver -k' \; 2>/dev/null
# Identifiziere erneut Kompatibilitätsdaten und versuche erneut, den wineserver zu beenden
echo "Finaler Check für aktive Proton- oder Wine-Prozesse..."
PFX=$(lsof | grep compatdata | grep 'pfx$' | awk '{print $NF}')
if [ -n "$PFX" ]; then
WINEPREFIX=$PFX wineserver -k
fi
# Identifiziere und töte Prozesse direkt aus /proc, die mit Wine oder Proton in Verbindung stehen, außer sich selbst
echo "Direktes Beenden von Wine- und Proton-Prozessen über /proc..."
ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | awk '{print $NF}' | grep -v "$$" | xargs -r kill -9 2>/dev/null
echo "Alle Wine- und Proton-Prozesse wurden erfolgreich beendet!"