User blog: Craig Blair

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

Twine

Comments

     
    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 ]

    Comments

       
      Craig Blair
      by Craig Blair - Tuesday, 28 April 2026, 10:13 AM
      Anyone in the world

      Isometric Room Grid

      Comments

         
        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 ]

        Comments

           
          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 ]

          Comments

             
            Craig Blair
            by Craig Blair - Tuesday, 3 June 2025, 2:10 PM
            Anyone in the world

            VLC

            Comments

               
              Craig Blair
              by Craig Blair - Monday, 31 March 2025, 12:20 PM
              Anyone in the world

              LibreOffice

              Comments

                 
                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 ]

                Comments

                   
                  Craig Blair
                  by Craig Blair - Tuesday, 10 December 2024, 12:47 PM
                  Anyone in the world

                  plist for library colour

                  Comments

                     
                    Craig Blair
                    by Craig Blair - Tuesday, 10 December 2024, 12:47 PM
                    Anyone in the world

                    plist for library colour

                    Comments