User blog: Craig Blair

Craig Blair
by Craig Blair - Tuesday, 16 June 2026, 10:16 AM
Anyone in the world

Twine

 
Craig Blair
by Craig Blair - Wednesday, 27 May 2026, 2:31 PM
Anyone in the world

#!/bin/bash

# Script to clean up lingering systemd user processes on logout
# Fixes SSH agent issues in Linux Mint 22

# Log file for debugging (overwritten each logout)
LOG_FILE="/tmp/cinnamon-cleanup-$USER.log"

# Overwrite log file
echo "$(date): Starting Cinnamon session cleanup for user: $USER" > "$LOG_FILE"

# Get user ID from the username
if [ -z "$USER" ]; then
    echo "$(date): ERROR: USER variable is not set" >> "$LOG_FILE"
    exit 1
fi

USER_ID=$(id -u $USER 2>/dev/null)

if [ -z "$USER_ID" ] || [ "$USER_ID" -eq 0 ]; then
    echo "$(date): ERROR: Invalid or root USER_ID ($USER_ID) for user $USER" >> "$LOG_FILE"
    exit 1
fi

echo "$(date): Cleaning up processes for user $USER (UID: $USER_ID)" >> "$LOG_FILE"

# Kill lingering systemd --user process
SYSTEMD_PID=$(pgrep -u $USER_ID "systemd" | head -1)

if [ -n "$SYSTEMD_PID" ]; then
    echo "$(date): Killing systemd --user process (PID: $SYSTEMD_PID)" >> "$LOG_FILE"
    kill -TERM "$SYSTEMD_PID" 2>> "$LOG_FILE"
    sleep 1

    # Force kill if still running
    if kill -0 "$SYSTEMD_PID" 2>/dev/null; then
        echo "$(date): Force killing systemd --user process" >> "$LOG_FILE"
        kill -KILL "$SYSTEMD_PID" 2>> "$LOG_FILE"
    fi
fi

# Clean up any lingering ssh-agent processes
SSH_AGENT_PIDS=$(pgrep -u $USER_ID "ssh-agent")

if [ -n "$SSH_AGENT_PIDS" ]; then
    echo "$(date): Killing ssh-agent processes: $SSH_AGENT_PIDS" >> "$LOG_FILE"
    kill -TERM $SSH_AGENT_PIDS 2>> "$LOG_FILE"
fi

# Clean up gnome-keyring-daemon
KEYRING_PIDS=$(pgrep -u $USER_ID "gnome-keyring")

if [ -n "$KEYRING_PIDS" ]; then
    echo "$(date): Killing gnome-keyring processes: $KEYRING_PIDS" >> "$LOG_FILE"
    kill -TERM $KEYRING_PIDS 2>> "$LOG_FILE"
fi

echo "$(date): Cleanup completed" >> "$LOG_FILE"

[ Modified: Thursday, 4 June 2026, 1:13 PM ]
 
Craig Blair
by Craig Blair - Tuesday, 28 April 2026, 10:13 AM
Anyone in the world

Isometric Room Grid

 
Craig Blair
by Craig Blair - Friday, 5 September 2025, 10:59 AM
Anyone in the world

1) Create the reset script

Open Terminal and run:

sudo mkdir -p /usr/local/bin
cat <<'EOF' | sudo tee /usr/local/bin/office-reset.sh >/dev/null
#!/bin/bash
# Reset Microsoft Office activation & cached identities for the current user

# Quit Office apps
/usr/bin/pkill -f "Microsoft"

# Remove cached Office data
/bin/rm -rf "$HOME/Library/Group Containers/UBF8T346G9.Office/"*
/bin/rm -rf "$HOME/Library/Containers/com.microsoft."*

# Clean Keychain tokens (ignore errors if not present)
/usr/bin/security delete-generic-password -l "Microsoft Office Identities Cache 2" "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null
/usr/bin/security delete-generic-password -l "Microsoft Office Identities Settings 2" "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null
/usr/bin/security delete-generic-password -s "ADAL" "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null
/usr/bin/security delete-generic-password -s "MSOID" "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null

# Nice-to-have: clear app saved state so Word doesn't re-open old windows
/bin/rm -rf "$HOME/Library/Saved Application State/com.microsoft."*.savedState

exit 0
EOF
sudo chmod 755 /usr/local/bin/office-reset.sh

2) Make it run at every login (LaunchAgent)

cat <<'EOF' | sudo tee /Library/LaunchAgents/au.nlsc.office.reset.plist >/dev/null
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key><string>au.nlsc.office.reset</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/office-reset.sh</string>
    </array>
    <key>RunAtLoad</key><true/>
    <key>StandardOutPath</key><string>/tmp/office-reset.out</string>
    <key>StandardErrorPath</key><string>/tmp/office-reset.err</string>
  </dict>
</plist>
EOF
sudo chown root:wheel /Library/LaunchAgents/au.nlsc.office.reset.plist
sudo chmod 644 /Library/LaunchAgents/au.nlsc.office.reset.plist

Now log out and back in

************************-------------------**************************

1) Install the reset script (once, system-wide)

Open Terminal and run:

sudo mkdir -p /usr/local/bin
cat <<'EOF' | sudo tee /usr/local/bin/office-reset.sh >/dev/null
#!/bin/bash
# Reset Microsoft Office activation & cached identities for the current user

# Quit Office apps
/usr/bin/pkill -f "Microsoft"

# Remove cached Office data
/bin/rm -rf "$HOME/Library/Group Containers/UBF8T346G9.Office/"*
/bin/rm -rf "$HOME/Library/Containers/com.microsoft."*

# Clean Keychain tokens (ignore errors if not present)
/usr/bin/security delete-generic-password -l "Microsoft Office Identities Cache 2" "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null
/usr/bin/security delete-generic-password -l "Microsoft Office Identities Settings 2" "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null
/usr/bin/security delete-generic-password -s "ADAL" "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null
/usr/bin/security delete-generic-password -s "MSOID" "$HOME/Library/Keychains/login.keychain-db" 2>/dev/null

# Clear app saved state so Word/Excel don’t reopen windows
/bin/rm -rf "$HOME/Library/Saved Application State/com.microsoft."*.savedState

exit 0
EOF
sudo chmod 755 /usr/local/bin/office-reset.sh

2) Create the LaunchAgent (system-wide, runs for all users)

cat <<'EOF' | sudo tee /Library/LaunchAgents/au.nlsc.office.reset.plist >/dev/null
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key><string>au.nlsc.office.reset</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/office-reset.sh</string>
    </array>
    <key>RunAtLoad</key><true/>
    <key>StandardOutPath</key><string>/tmp/office-reset.out</string>
    <key>StandardErrorPath</key><string>/tmp/office-reset.err</string>
  </dict>
</plist>
EOF
sudo chown root:wheel /Library/LaunchAgents/au.nlsc.office.reset.plist
sudo chmod 644 /Library/LaunchAgents/au.nlsc.office.reset.plist

***************************-------------------*****************************

pkill "Microsoft" && rm -rf ~/Library/Group\ Containers/UBF8T346G9.Office/* ~/Library/Containers/com.microsoft.* && security delete-generic-password -l "Microsoft Office Identities Cache 2" ~/Library/Keychains/login.keychain-db 2>/dev/null && security delete-generic-password -l "Microsoft Office Identities Settings 2"~/Library/Keychains/login.keychain-db 2>/dev/null && security delete-generic-password -s "ADAL"~/Library/Keychains/login.keychain-db 2>/dev/null && security delete-generic-password -s "MSOID"~/Library/Keychains/login.keychain-db 2>/dev/null

*********************************-------------------************************************

rm -rf ~/Library/Group\ Containers/UBF8T346G9.Office/*

rm -rf ~/Library/Containers/com.microsoft.Word

rm -rf ~/Library/Containers/com.microsoft.Excel

rm -rf ~/Library/Containers/com.microsoft.Powerpoint

rm -rf ~/Library/Containers/com.microsoft.onenote.mac

*********************************-------------------************************************

[ Modified: Monday, 11 May 2026, 2:27 PM ]
 
Craig Blair
by Craig Blair - Thursday, 28 August 2025, 11:45 AM
Anyone in the world

Flashcards

[ Modified: Friday, 29 August 2025, 9:07 AM ]
 
Craig Blair
by Craig Blair - Tuesday, 3 June 2025, 2:10 PM
Craig Blair
by Craig Blair - Monday, 31 March 2025, 12:20 PM
Craig Blair
by Craig Blair - Friday, 28 March 2025, 10:41 AM
Anyone in the world

LinuxMintStrip

[ Modified: Friday, 15 August 2025, 1:25 PM ]
 
Craig Blair
by Craig Blair - Tuesday, 10 December 2024, 12:47 PM
Craig Blair
by Craig Blair - Tuesday, 10 December 2024, 12:47 PM