citrix-stop.sh

Citrix op linux, en nu weet ik niet zeker of dit enkel op KDE zo is en niet op bijvoorbeeld Gnome, heeft de nare eigenschap bij sluiten van de sessie, de processen open te laten. Hierdoor , als je de citrix sessie start, deze eindeloos blijft laden. Het onderstaand script beëindigt alle actieve Citrix-processen en ruimt UDS-sockets op. (/software/icaclient/)

Script

#!/bin/bash

PATTERNS=(
    wfica
    icasessionmgr
    UtilDaemon
    ctxwebhelper
    ctxaudio
    ctxusb
    adapter
    selfservice
    receiver
    storebrowse
    AuthManagerDaemon
)

stopped=0

for pattern in "${PATTERNS[@]}"; do
    pids=$(pgrep -f "/opt/Citrix/ICAClient/.*${pattern}" 2>/dev/null)
    if [[ -n "$pids" ]]; then
        echo "Stoppen: $pattern (PID: $pids)"
        kill $pids 2>/dev/null
        stopped=$((stopped + 1))
    fi
done

# Geef processen even de tijd om netjes te stoppen
sleep 2

# Controleer of er nog processen over zijn en forceer stop
for pattern in "${PATTERNS[@]}"; do
    pids=$(pgrep -f "/opt/Citrix/ICAClient/.*${pattern}" 2>/dev/null)
    if [[ -n "$pids" ]]; then
        echo "Forceer stop: $pattern (PID: $pids)"
        kill -9 $pids 2>/dev/null
    fi
done

# Ruim UDS sockets op
rm -f /home/dexter/.ICAClient/UDS/wficasession_* 2>/dev/null

if [[ $stopped -eq 0 ]]; then
    echo "Geen actieve Citrix-processen gevonden."
else
    echo "Klaar."
fi

Gebruik

chmod +x citrix-stop.sh
./citrix-stop.sh
citrixfedora