#!/usr/bin/env bash # # snapshot-cgroup - Copy cgroup v2 files from the live system into a # directory tree suitable for use with TestIntegrationCgroupLimits. # # Usage: snapshot-cgroup # # The script reads /proc/self/cgroup to find the v2 group path and copies # exactly the files that the cgroup package needs: # # proc/self/cgroup # sys/fs/cgroup//cpu.max # sys/fs/cgroup//memory.max set -euo pipefail if [[ $# -ne 1 ]]; then echo "Usage: $0 " >&2 exit 1 fi out="$1" mkdir -p "$out" copy_file() { local src="$1" dst="$out/$2" mkdir -p "$(dirname "$dst")" cp "$src" "$dst" } copy_file /proc/self/cgroup proc/self/cgroup group=$(awk -F: '/^0::/ { print $3 }' /proc/self/cgroup) cgdir="/sys/fs/cgroup${group}" for f in cpu.max memory.max; do if [[ -f "$cgdir/$f" ]]; then copy_file "$cgdir/$f" "sys/fs/cgroup${group}/$f" fi done echo "Snapshot written to $out"