What do I do, when my PC freezes?

Windows has ctrl+alt+del, does Linux Mint has something comparable? The only thing I know about is REISUB, but that borked my PC, so I am hesitant to use that again.

Are there any remaining alternatives to waiting and/or using the power button?

Edit: Thank you all for your insights and possible fixes. Crashes usually happened when I was running (cpu/ram?) heavy workload. Increasing swap space was not even on my radar, so I did that now. :) Hopefully Mint will run more stable now.

    • abcdqfr@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      5 days ago

      Tried F1-6, no love. Only thing that does respond is the mouse movement… keyboard only responds to input reisub. I think if I am at keyboard and the screen does not lock, any windows open will respond to mouse hover but not clicks… I need a linux doctor lol. Maybe a second display for outputting kernel logs, that would be fun for dev work. Though I feel like ssh is the defacto way to accomplish that… Anything we can accomplish with one host and two displays, no network?

      Prompted GPT

      It sounds like you’re encountering a kernel-level or X/Wayland-level freeze while developing. The fact that the keyboard is unresponsive except for REISUB suggests a deep hang in the graphical session or related system processes.

      Here’s a practical way to debug and diagnose this issue with two displays and one host, without needing a network:


      Setup for Debugging on Two Displays

      1. Enable Persistent Kernel Logs on Second Display:

        • Use a TTY session on your second display to monitor kernel logs.
        • Connect your second display and switch to it using Ctrl+Alt+F2 (or F3-F6, depending on availability).
        • Login and run:
          sudo tail -f /var/log/kern.log
          
          or
          sudo dmesg -w
          
        • This will show you kernel logs in real time, which is often critical for diagnosing freezes.
      2. Mirror Logs or Virtual Console Across Displays:

        • If your second display doesn’t switch TTYs independently, use a terminal multiplexer (like tmux or screen) to duplicate the kernel log view.
          • Start tmux in TTY1 and attach to it from TTY2:
            tmux
            tail -f /var/log/kern.log
            
            Then on the second TTY:
            tmux attach
            

      Improve Debugging Workflow

      1. Set Up Magic SysRq for More Control:

        • If your system allows REISUB, the Magic SysRq key is already enabled. You can use other commands to debug live:
          • Sync and Kill Tasks: Alt + SysRq + F can attempt to kill resource-hogging processes.
          • Toggle TTY: Alt + SysRq + R can re-enable raw keyboard input if the GUI is frozen.
      2. Enable Kernel Debugging Outputs:

        • Append debug to your kernel boot parameters in GRUB:
          • Edit /etc/default/grub:
            GRUB_CMDLINE_LINUX_DEFAULT="quiet splash debug"
            
          • Update GRUB and reboot:
            sudo update-grub
            
        • This provides richer debugging output in logs.
      3. Use a Non-GUI Target:

        • For safer development, switch to a lower system target to prevent full GUI freezes:
          sudo systemctl set-default multi-user.target
          
          • Reboot into a non-GUI mode where you can manually start your app, making it easier to debug without freezing the entire desktop.
      4. Forcefully Isolate the Process:

        • Run your wallpaper application in a separate X server to isolate it:
          xinit /path/to/your/app -- :1
          
          • This starts a new X session on display :1 while keeping your primary desktop untouched.

      Tips to Prevent GUI Freezes During Development

      • Limit CPU or Memory Usage:
        • Use ulimit to restrict resource usage of your program:
          ulimit -v 1048576  # Limit to 1GB virtual memory
          
      • Log Debugging Information:
        • Add debug prints in your app and log them to a file instead of stdout.