Wichtige Hinweise vor dem Start
Aufbau: Jeder Terminalblock steht geschlossen in einem eigenen Abschnitt. Zu jedem Schritt ist angegeben, in welchem Fenster er ausgeführt wird und welche Ausgabe am Ende erwartet wird.
Sicherheitsregel: Der Papierkorb wird erst nach dem Neustart und der abschließenden Kontrolle geleert. Die Logdatei auf dem Schreibtisch kann danach ebenfalls gelöscht werden.
Korrektur gegenüber der früheren Fassung: Block 1
enthält keine dauerhafte exec ... tee-Umleitung
mehr. Dadurch kehrt der Terminal-Prompt sofort zurück.
Block 1 – Vorbereitung
Der Block legt einen eindeutigen Sicherheitsordner im Papierkorb sowie eine Logdatei auf dem Schreibtisch an. Er verschiebt noch keine App und keine Systemdatei.
stamp=$(date +%Y-%m-%d_%H-%M-%S)
trash="$HOME/.Trash/LogiOptionsPlus_Removed_$stamp"
log="$HOME/Desktop/LogiOptionsPlus_Uninstall_$stamp.txt"
mkdir -p "$trash"
touch "$log"
echo "=== Logi Options+ Deinstallation gestartet ===" | tee -a "$log"
echo "Papierkorb-Ziel: $trash" | tee -a "$log"
echo "Logdatei: $log" | tee -a "$log"
echoGewünschtes Ergebnis
Block 2 – Dienste und Prozesse stoppen
Bei sudo -v kann macOS nach dem
Benutzerpasswort fragen. Beim Tippen werden weder Punkte noch Sternchen
angezeigt; das ist normal.
echo "1) Administratorrechte prüfen..."
echo "Bei der Passworteingabe werden keine Zeichen angezeigt."
sudo -v
echo
echo "2) LaunchAgents und LaunchDaemons stoppen..."
launchctl bootout gui/$(id -u) \
"$HOME/Library/LaunchAgents/com.logi.optionsplus.plist" 2>/dev/null
launchctl bootout gui/$(id -u) \
"$HOME/Library/LaunchAgents/com.logi.cp-dev-mgr.plist" 2>/dev/null
sudo launchctl bootout system \
"/Library/LaunchDaemons/com.logi.optionsplus.updater.plist" 2>/dev/null
sudo launchctl bootout system \
"/Library/LaunchDaemons/com.logi.cp-dev-mgr.plist" 2>/dev/null
echo
echo "3) Logi Options+ und Hintergrundprozesse beenden..."
sudo killall logioptionsplus 2>/dev/null
sudo killall logioptionsplus_agent 2>/dev/null
sudo killall logioptionsplus_updater 2>/dev/null
sudo killall LogiPluginService 2>/dev/null
echo
echo "Block 2 abgeschlossen."Gewünschtes Ergebnis
Block 3 – Hilfsfunktionen einrichten
Dieser Block definiert zwei Hilfsfunktionen. Er verschiebt selbst noch nichts. Die Funktionen sorgen in den nächsten Blöcken für eindeutige Dateinamen im Sicherheitsordner.
move_user() {
local p="$1"
local name
if [ -e "$p" ] || [ -L "$p" ]; then
name=$(printf '%s' "$p" | sed 's#^/##; s#/#__#g')
echo "Verschiebe Benutzerdatei: $p"
/bin/mv "$p" "$trash/$name"
fi
}
move_root() {
local p="$1"
local name
if [ -e "$p" ] || [ -L "$p" ]; then
name=$(printf '%s' "$p" | sed 's#^/##; s#/#__#g')
echo "Verschiebe Systemdatei: $p"
sudo /bin/mv "$p" "$trash/$name"
fi
}
echo "Block 3 abgeschlossen."Gewünschtes Ergebnis
Block 4A – App und Systemreste verschieben
Vorhandene Logi-Options+-Systempfade werden in den zuvor angelegten Sicherheitsordner im Papierkorb verschoben. Nicht vorhandene Pfade werden still übersprungen.
echo
echo "4A) App und Systemreste verschieben..."
move_root "/Applications/Logi Options+.app"
move_root "/Applications/logioptionsplus.app"
move_root "/Applications/Utilities/LogiPluginService.app"
move_root "/Applications/Utilities/Logi Options+ Uninstaller.app"
move_root "/Library/Application Support/Logi"
move_root "/Library/Application Support/Logitech.localized/LogiOptionsPlus"
move_root "/Library/Logs/Logi"
move_root "/Library/LaunchDaemons/com.logi.optionsplus.updater.plist"
move_root "/Library/LaunchDaemons/com.logi.cp-dev-mgr.plist"
echo
echo "Block 4A abgeschlossen."Gewünschtes Ergebnis
Block 4B – Benutzerreste verschieben
Vorhandene Logi-Options+-Dateien aus dem persönlichen Benutzerordner werden in den Sicherheitsordner verschoben.
echo
echo "4B) Benutzerreste verschieben..."
move_user "$HOME/Applications/Utilities/LogiPluginService.app"
move_user "$HOME/Library/Application Support/Logi"
move_user "$HOME/Library/Application Support/LogiOptionsPlus"
move_user "$HOME/Library/LaunchAgents/com.logi.optionsplus.plist"
move_user "$HOME/Library/LaunchAgents/com.logi.cp-dev-mgr.plist"
move_user "$HOME/Library/HTTPStorages/LogiPluginServiceNative"
move_user "$HOME/Library/Logs/xlog_logitech"
move_user "$HOME/Library/Preferences/com.logi.cp-dev-mgr.plist"
move_user "$HOME/Library/Preferences/com.logi.lps.settings.plist"
move_user "$HOME/Library/Preferences/com.logi.optionsplus.driverhost.plist"
move_user "$HOME/Library/Preferences/com.logi.optionsplus.plist"
move_user "$HOME/Library/Preferences/com.logi.pluginservice.plist"
move_user "$HOME/Library/Saved Application State/com.logi.optionsplus.savedState"
echo
echo "Block 4B abgeschlossen."Gewünschtes Ergebnis
Block 5 – Erste Kontrolle und Abschlussanzeige
Der Block prüft laufende Prozesse und die wichtigsten Restorte. Die Ausgabe wird zusätzlich an die Logdatei angehängt.
{
echo
echo "5) Kontrolle laufender Logitech-Prozesse:"
if pgrep -afil 'logioptionsplus|LogiPluginService|optionsplus|com\.logi'; then
echo "Hinweis: Oben wurden noch passende Prozesse gefunden."
else
echo "Keine laufenden Logi-Options+-Prozesse gefunden."
fi
echo
echo "Kontrolle wichtiger Restorte:"
found=0
for p in \
"/Applications/Logi Options+.app" \
"/Applications/logioptionsplus.app" \
"/Library/Application Support/Logi" \
"/Library/Application Support/Logitech.localized/LogiOptionsPlus" \
"/Library/LaunchDaemons/com.logi.optionsplus.updater.plist" \
"/Library/LaunchDaemons/com.logi.cp-dev-mgr.plist" \
"$HOME/Library/Application Support/Logi" \
"$HOME/Library/Application Support/LogiOptionsPlus" \
"$HOME/Library/LaunchAgents/com.logi.optionsplus.plist" \
"$HOME/Library/LaunchAgents/com.logi.cp-dev-mgr.plist"
do
if [ -e "$p" ] || [ -L "$p" ]; then
echo "Noch vorhanden: $p"
found=1
fi
done
if [ "$found" -eq 0 ]; then
echo "Keine der geprüften Hauptdateien mehr vorhanden."
fi
echo
echo "Verschoben nach:"
echo "$trash"
echo
echo "Logdatei:"
echo "$log"
echo
echo "Block 5 abgeschlossen."
} | tee -a "$log"Gewünschtes Ergebnis
Block 6 – Mac neu starten
Der Neustart beendet das Terminalfenster sofort. Das ist beabsichtigt.
echo
echo "Mac wird jetzt neu gestartet..."
sudo rebootGewünschtes Ergebnis
Kontrolle 1 – Laufende Prozesse
echo "Kontrolle 1 - laufende Logi-Options+-Prozesse"
if pgrep -afil 'logioptionsplus|LogiPluginService|optionsplus|com\.logi' >/dev/null; then
pgrep -afil 'logioptionsplus|LogiPluginService|optionsplus|com\.logi'
echo
echo "Es wurden noch passende Prozesse gefunden."
else
echo "Keine laufenden Logi-Options+-Prozesse gefunden."
fiGewünschtes Ergebnis
Kontrolle 2 – App im Programme-Ordner
echo "Kontrolle 2 - Logi-Options+-App"
if [ -e "/Applications/Logi Options+.app" ] || \
[ -e "/Applications/logioptionsplus.app" ]; then
echo "Die Logi-Options+-App ist noch vorhanden."
ls -ld "/Applications/Logi Options+.app" \
"/Applications/logioptionsplus.app" 2>/dev/null
else
echo "Keine Logi-Options+-App im Programme-Ordner gefunden."
fiGewünschtes Ergebnis
Kontrolle 3 – Wichtige Restorte
echo "Kontrolle 3 - wichtige Logi-Options+-Restorte"
found=0
for p in \
"/Library/Application Support/Logi" \
"/Library/Application Support/Logitech.localized/LogiOptionsPlus" \
"/Library/Logs/Logi" \
"/Library/LaunchDaemons/com.logi.optionsplus.updater.plist" \
"/Library/LaunchDaemons/com.logi.cp-dev-mgr.plist" \
"$HOME/Library/Application Support/Logi" \
"$HOME/Library/Application Support/LogiOptionsPlus" \
"$HOME/Library/LaunchAgents/com.logi.optionsplus.plist" \
"$HOME/Library/LaunchAgents/com.logi.cp-dev-mgr.plist" \
"$HOME/Library/HTTPStorages/LogiPluginServiceNative" \
"$HOME/Library/Logs/xlog_logitech" \
"$HOME/Library/Preferences/com.logi.optionsplus.plist" \
"$HOME/Library/Preferences/com.logi.optionsplus.driverhost.plist" \
"$HOME/Library/Preferences/com.logi.pluginservice.plist"
do
if [ -e "$p" ] || [ -L "$p" ]; then
echo "Noch vorhanden: $p"
found=1
fi
done
if [ "$found" -eq 0 ]; then
echo "Keine der geprüften Logi-Options+-Hauptreste gefunden."
fiGewünschtes Ergebnis
~/Library/Application Support/LogiOptionsPlus
erneut gefunden.Kontrolle 4 – Nur beim genannten Restordner
/Users/DEIN_NAME/Library/Application Support/LogiOptionsPlusDer Restordner wird nicht sofort gelöscht, sondern in einen neuen Sicherheitsordner im Papierkorb verschoben.
stamp=$(date +%Y-%m-%d_%H-%M-%S)
dest="$HOME/.Trash/LogiOptionsPlus_Rest_$stamp"
mkdir -p "$dest"
mv "$HOME/Library/Application Support/LogiOptionsPlus" "$dest/"
echo "Verbliebener Logi-Options+-Ordner wurde in den Papierkorb verschoben:"
echo "$dest"Gewünschtes Ergebnis
Abschlusskontrolle – Kontrolle 3 wiederholen
Nach Kontrolle 4 denselben Block „Kontrolle 3“ noch einmal vollständig ausführen.
echo "Kontrolle 3 - wichtige Logi-Options+-Restorte"
found=0
for p in \
"/Library/Application Support/Logi" \
"/Library/Application Support/Logitech.localized/LogiOptionsPlus" \
"/Library/Logs/Logi" \
"/Library/LaunchDaemons/com.logi.optionsplus.updater.plist" \
"/Library/LaunchDaemons/com.logi.cp-dev-mgr.plist" \
"$HOME/Library/Application Support/Logi" \
"$HOME/Library/Application Support/LogiOptionsPlus" \
"$HOME/Library/LaunchAgents/com.logi.optionsplus.plist" \
"$HOME/Library/LaunchAgents/com.logi.cp-dev-mgr.plist" \
"$HOME/Library/HTTPStorages/LogiPluginServiceNative" \
"$HOME/Library/Logs/xlog_logitech" \
"$HOME/Library/Preferences/com.logi.optionsplus.plist" \
"$HOME/Library/Preferences/com.logi.optionsplus.driverhost.plist" \
"$HOME/Library/Preferences/com.logi.pluginservice.plist"
do
if [ -e "$p" ] || [ -L "$p" ]; then
echo "Noch vorhanden: $p"
found=1
fi
done
if [ "$found" -eq 0 ]; then
echo "Keine der geprüften Logi-Options+-Hauptreste gefunden."
fiJetzt muss dieses Ergebnis erscheinen
Papierkorb und Logdatei aufräumen
Ja: Nach bestandener Abschlusskontrolle können die Logi-Options+-Ordner im Papierkorb endgültig gelöscht werden.
Möglichkeit 1 – Gesamten Papierkorb leeren
Im Finder auf „Papierkorb leeren“ klicken. Dabei werden allerdings auch alle anderen Gegenstände im Papierkorb endgültig gelöscht.
Möglichkeit 2 – Nur die Logi-Ordner löschen
Im Papierkorb nur die Ordner löschen, deren Namen mit
LogiOptionsPlus_Removed_ oder
LogiOptionsPlus_Rest_ beginnen.
Logdatei auf dem Schreibtisch
Die Datei
LogiOptionsPlus_Uninstall_...txt
kann nach der erfolgreichen Abschlusskontrolle ebenfalls gelöscht
werden. Wer den Ablauf dokumentieren möchte, kann sie stattdessen
aufbewahren.