podman-non-systemd

Diagnose and fix rootless Podman cgroup failures on non-systemd Linux distributions.

2|Updated Jan 2, 2026
One-click install
npx skills add https://github.com/ShineBreaker/Guix-configs --skill podman-non-systemd-shinebreaker
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: podman-non-systemd
Source: https://github.com/ShineBreaker/Guix-configs/tree/main/dotfiles/mutable/agents/hermes/.local/share/hermes/skills/devops/podman-non-systemd
Command: npx skills add https://github.com/ShineBreaker/Guix-configs --skill podman-non-systemd-shinebreaker

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Rootless Podman and podman-compose containers fail to start on non-systemd Linux distributions (Guix, Artix, Devuan) with cgroup parent errors, because Podman records a systemd slice as the cgroup parent while running in cgroupfs mode. ## Core Features & Use Cases - cgroup_parent Fix: Add cgroup_parent: "/" to compose.yaml service blocks so containers attach to the cgroup root instead of a nonexistent systemd slice. - Runtime Configuration: Configure crun instead of runc in containers.conf, since runc does not support rootless keep-groups device access. - Device Access: Use group_add: keep-groups so rootless containers can access devices like /dev/kvm. - Use Case: On Guix System with shepherd and elogind, a container fails with "systemd slice received as cgroup parent when using cgroupfs". Apply the cgroup_parent fix, remove the stale container, and restart with podman-compose. ## Quick Start Ask the assistant to fix a rootless Podman container that fails to start with a cgroup parent error on your non-systemd Linux system.

Frequently Asked Questions about podman-non-systemd

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix Podman cgroup parent errors on non-systemd Linux?▼

Add cgroup_parent: "/" to the service block in your compose.yaml so Podman places the container at the cgroup root instead of a systemd slice. Then remove the stale container with podman rm and restart with podman-compose.

Why does rootless Podman fail with "systemd slice received as cgroup parent"?▼

Podman runs in cgroupfs mode on non-systemd systems, but the container metadata records a systemd slice as the cgroup parent. That slice does not exist without systemd, so container startup fails with an invalid argument error.

Should I use crun or runc for rootless Podman?▼

Use crun for rootless Podman, especially with keep-groups. runc does not work in rootless keep-groups scenarios. Set runtime = "crun" under the [engine] section in ~/.config/containers/containers.conf.

How do I access /dev/kvm from a rootless Podman container?▼

Add group_add: keep-groups to the service in compose.yaml so the container retains your supplementary groups. This also requires crun as the configured runtime, since runc does not support keep-groups in rootless mode.

Does the cgroup_parent fix work on Guix, Artix, and Devuan?▼

Yes, the fix applies to any non-systemd distribution using cgroupfs with rootless Podman, including Guix System with shepherd, Artix with OpenRC or runit, and Devuan with sysvinit. It also works with the built-in podman compose subcommand.