기술 · 실용 가이드
systemd status=219/CGROUP? 위임을 바꾸기 전에 실패한 cgroup 작업을 읽으세요
이 코드는 설정 단계를 가리킬 뿐 해결책 하나를 뜻하지 않습니다. journal 동사, errno와 경로를 보존하고 manager와 계층을 매핑한 뒤 한 소유권 경계만 고쳐 한 번의 깨끗한 시작을 증명하세요.

이 코드는 설정 단계를 가리킬 뿐 해결책 하나를 뜻하지 않습니다. journal 동사, errno와 경로를 보존하고 manager와 계층을 매핑한 뒤 한 소유권 경계만 고쳐 한 번의 깨끗한 시작을 증명하세요.
status 219는 systemd가 서비스 cgroup을 설정하는 단계에서 실패했다는 뜻이며 원인이 하나라는 뜻은 아닙니다.
1. 첫 CGROUP 줄 보존
reset-failed, restart, reboot 또는 권한 변경 전에 systemctl status와 첫 실패 주변 journal을 저장하세요. create, attach, enable, migrate, 소유권 변경은 서로 다른 분기입니다.
errno와 전체 cgroup 경로를 기록하세요. 마지막 status=219/CGROUP는 단계만 말하고 앞선 manager 메시지가 수정해야 할 작업과 객체를 알려 줍니다.
2. 책임 manager 식별
실패 unit이 PID 1, systemctl --user, container init 또는 중첩 manager 중 어디에 속하는지 확인하세요. manager 버전, kernel, 가상화와 같은 UID/unit이 경계 밖에서 동작하는지 기록합니다.
service process가 원인이라고 단정하지 마세요. 아직 실행되지 않았을 수 있습니다. unit ControlGroup과 create/attach를 시도한 manager를 대응시키세요.
3. 계층을 읽기 전용으로 매핑
/sys/fs/cgroup의 mountinfo 또는 findmnt, cgroup 종류, controller, systemctl show와 systemd-cgls를 읽기 전용으로 확인하세요. 영향받은 unit/부모 아래 살아 있는 process를 옮기거나 죽이지 말고 나열합니다.
소유권 장부를 만드세요. host manager는 위임 unit 위를 소유하고 delegatee는 그 아래만 소유합니다. cgroup v2의 inner-node/controller 규칙에서는 남은 process나 수동 subtree 변경이 다음 시작을 막을 수 있습니다.
4. 수정 분기 분류
증거로 분기하세요. ENOENT는 hierarchy/mount 누락, EROFS는 읽기 전용 경계, EACCES/EPERM은 소유·위임 불일치, EBUSY는 살아 있는 process나 비호환 subtree 상태일 수 있습니다. 편집 전에 vendor/container 제약을 확인합니다.
한 경계만 변경하세요. 재귀 chmod/chown, 전역 Delegate=yes, resource control 비활성화나 cgroup directory 삭제를 피하세요. unit이 subgroup을 소유하면 controller 상태나 restart 정책을 바꾸기 전에 모든 process를 정리·확인합니다.
5. 통제된 한 번 시작 증명
관찰하며 한 번만 시작하고 status, journal, ControlGroup과 systemd-cgls를 다시 읽으세요. 예상 path/ownership/controller, health check와 새 219가 없음을 확인합니다.
reboot, container host 변경 또는 vendor update가 필요하면 명시하고 전후 증거를 보존하세요. 원래 실패 작업을 설명하지 못하는 일시적 재시도 성공을 영구 수정이라고 부르지 마세요.
