47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# This script will reset x2go sessions to a working state
|
|
# Copyright Bryan C. Roessler
|
|
|
|
parent="${BASH_SOURCE[0]}"
|
|
parent=${parent%/*}
|
|
|
|
[[ -f $parent/script-functions ]] && . "$parent"/script-functions || exit 1
|
|
|
|
is_root
|
|
|
|
echo "This script supports one optional argument, a username"
|
|
|
|
user_list=()
|
|
if [[ $# -eq 1 ]]; then
|
|
if [[ $1 == '--all' ]]; then
|
|
for i in /home/*; do
|
|
user_list+=("${i##*/}")
|
|
done
|
|
fi
|
|
else
|
|
prompt user
|
|
user_list+=("$user")
|
|
unset user
|
|
fi
|
|
|
|
for user in "${user_list[@]}"; do
|
|
# Clean local user cache
|
|
shopt -s nullglob
|
|
caches=(/home/"$user"/.x2go/C-"$user"-*)
|
|
shopt -u nullglob
|
|
if [[ ${#caches} -gt 0 ]]; then
|
|
ask_ok "Remove X2Go cache files for user $user?" &&
|
|
rm -rf /home/"$user"/.x2go/C-"$user"-* &&
|
|
echo "Removed: ${caches[*]} for user $user"
|
|
fi
|
|
# Clean X2Go sessions
|
|
mapfile -t sessions < <(x2golistsessions_root | grep "$user"| cut -f2 -d'|')
|
|
if [[ ${#sessions} -gt 0 ]]; then
|
|
ask_ok "Terminate X2Go sessions for user $user?" &&
|
|
for session in "${sessions[@]}"; do
|
|
x2goterminate-session "$session" &&
|
|
echo "Terminated: $session for user $user"
|
|
done
|
|
fi
|
|
done
|