From c4239335b9fb2da6dab1f53ff0e8eb32c78530de Mon Sep 17 00:00:00 2001 From: Benny Baumann Date: Sun, 6 Mar 2022 15:02:49 +0100 Subject: [PATCH] Skip system slice name This shortens paths like /system.slice/system-postgres.slice/postgres@12-main.service to /[S]/postgres@12-main. Without this some cgroup names for getty processes explode in length. --- linux/CGroupUtils.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/linux/CGroupUtils.c b/linux/CGroupUtils.c index d6d2ae8f..22cce91b 100644 --- a/linux/CGroupUtils.c +++ b/linux/CGroupUtils.c @@ -66,6 +66,7 @@ static bool CGroup_filterName_internal(const char *cgroup, StrBuf_state* s, StrB const char* str_user_slice = "user.slice"; const char* str_machine_slice = "machine.slice"; const char* str_user_slice_prefix = "/user-"; + const char* str_system_slice_prefix = "/system-"; const char* str_lxc_monitor_legacy = "lxc.monitor"; const char* str_lxc_payload_legacy = "lxc.payload"; @@ -102,6 +103,11 @@ static bool CGroup_filterName_internal(const char *cgroup, StrBuf_state* s, StrB if (!StrBuf_putsz(s, w, "[S]")) return false; + if (String_startsWith(cgroup, str_system_slice_prefix)) { + cgroup = strchrnul(cgroup + 1, '/'); + continue; + } + continue; }