#!/bin/bash # Cleanup script for Codex Desktop - kills stale processes before launch echo "Cleaning up stale Codex processes..." >&2 # Kill codex app-server processes for pid in $(ps aux 2>/dev/null | grep -E "codex .*app-server" | grep -v grep | awk '{print $2}'); do kill -9 "$pid" 2>/dev/null || true echo " Killed app-server pid=$pid" done # Kill webview server for pid in $(ps aux 2>/dev/null | grep webview-server.py | grep -v grep | awk '{print $2}'); do kill -9 "$pid" 2>/dev/null || true echo " Killed webview-server pid=$pid" done # Kill main electron process for codex-desktop for pid in $(ps aux 2>/dev/null | grep "/opt/codex-desktop/electron" | grep "class=codex-desktop" | grep -v grep | awk '{print $2}'); do kill -9 "$pid" 2>/dev/null || true echo " Killed electron pid=$pid" done # Kill all remaining child processes of codex-desktop for pid in $(ps aux 2>/dev/null | grep "/opt/codex-desktop/" | grep -v grep | awk '{print $2}'); do kill -9 "$pid" 2>/dev/null || true done # Kill zai proxy (if any) for pid in $(ps aux 2>/dev/null | grep zai-proxy.py | grep -v grep | awk '{print $2}'); do kill "$pid" 2>/dev/null || true done # Kill unified translation proxy (if any) for pid in $(ps aux 2>/dev/null | grep translate-proxy.py | grep -v grep | awk '{print $2}'); do kill "$pid" 2>/dev/null || true done # Remove stale socket and PID files rm -f "$HOME/.codex/.launch-action-socket" 2>/dev/null || true rm -f "$HOME/.codex/.codex-desktop-launch-action" 2>/dev/null || true rm -f "$HOME/.local/share/codex-desktop/.launch-action-socket" 2>/dev/null || true rm -f "$HOME/.cache/codex-desktop/.launch-action-socket" 2>/dev/null || true rm -f "$HOME/.local/share/codex-desktop/.codex-desktop-pid" 2>/dev/null || true rm -f "$HOME/.cache/codex-desktop/.codex-desktop-pid" 2>/dev/null || true rm -f "$HOME/.local/share/codex-desktop/.webview-pid" 2>/dev/null || true rm -f "$HOME/.cache/codex-desktop/.webview-pid" 2>/dev/null || true sleep 1 # Verify no remaining process on port 5175 (webview) if lsof -ti :5175 2>/dev/null | grep -q .; then echo " Warning: Port 5175 still in use" lsof -ti :5175 2>/dev/null | xargs kill -9 2>/dev/null || true fi echo "Cleanup complete"