Skip to content

AppImages Prevent System Suspend/Freeze user.slice on openSUSE – Processes Cannot Be Killed by SIGTERM/SIGKILL, System Hang #1404

@braklo

Description

@braklo

Summary:
Certain AppImages (e.g., Viber.AppImage, Beeper.AppImage, Electron-based) running on openSUSE Tumbleweed prevent the system from suspending/hibernating. When these AppImages are running, systemd-sleep sometimes fails with a "Failed to freeze unit 'user.slice': Connection timed out" error. In the worst case, the entire computer hard-freezes (full system hang), and only a hardware reset helps.

Steps to Reproduce:

Download and run an AppImage (e.g., Viber.AppImage or Beeper.AppImage).

Attempt to suspend or hibernate the system.

The system either:

    Gets stuck during suspend/hibernate (systemd log: "Failed to freeze unit 'user.slice': Connection timed out")

    Or completely freezes and becomes unresponsive (requires power off).

What I tried:

Added a systemd-sleep hook to send SIGTERM and then SIGKILL to all running AppImages before suspend.

Even after SIGKILL, the processes sometimes remain (in state "S" or become zombie "Z") and never disappear from the process list.

When these processes are present, systemd cannot freeze user.slice, and the entire suspend/hibernate process either fails or causes a total system lockup.

This has been tested on multiple machines and is reproducible with various AppImages, mostly Electron-based.

Expected behavior:

AppImages should properly terminate or at least reliably disappear from the process list when SIGTERM/SIGKILL is sent.

System should suspend or hibernate normally.

Actual behavior:

AppImage processes do not terminate and remain in the process list after SIGTERM/SIGKILL.

When they are present, system suspend/hibernate either fails or freezes the entire computer.

System Information:

openSUSE Tumbleweed (latest)
Kernel version: 6.15.0-1-default
Example AppImages: Viber.AppImage, Beeper.AppImage
Desktop Environment: KDE Plasma wayland

Relevant logs:

systemd-sleep[XXXXX]: Failed to freeze unit 'user.slice': Connection timed out
kernel: Freezing user space processes
kernel: Freezing user space processes completed
...
(ps output before/after kill)
PID 12345 S viber.AppImage
PID 12345 Z viber.AppImage

Workaround:

Only workaround is to manually ensure all AppImages are fully terminated before suspend/hibernate. Automatic killing via system-sleep hook does not always work.

Blocking suspend/hibernate if any AppImages are running (but this is not user-friendly).

Impact:
This bug can lead to complete system hangs and data loss, as the only recovery is a hard reset.

Please advise if there is a way to forcefully terminate AppImages or make them reliably respond to system signals during suspend. Any suggestions for debugging or workaround would be appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions