wine/proton beenden

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.

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!"
 
  • Gefällt mir
Reaktionen: Tanzmusikus
Danke, habs jetzt zwar nicht ausprobiert, aber weiß.
Das erinnert mich daran, dass es in Lutris mal einen Button gab, der alle wine Prozesse killte.
 
Danke!
Besser "man hat es" als "man braucht es"! :daumen:
 
  • Gefällt mir
Reaktionen: mytosh
Ich brauche es auch eher für proton-ge-custom oder steam.
Das reguläre wine bekommt man ja auch so, schnell und einfach, tot.
 
Hattest wohl krasse Hänger und Abstürze beim Austüfteln ...? 😉
 
Nee, eigentlich nicht. Ich hatte allerdings lange das Problem, dass sich das Skript auch selbst abgeschossen hat.
 
  • Gefällt mir
Reaktionen: Tanzmusikus
Ah, und jetzt hast du das Script "gemeistert". 😊👍
 
Zurück
Oben