diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-04-22 17:26:06 -0300 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-04-22 23:14:12 -0300 |
commit | aff38e74bd776471f15ba54b305a24b0251eb865 (patch) | |
tree | 3cf5b2d30d78cd2f7472907d098e298b52683e2e /src/test/test-cgroup-util.c | |
parent | dc2c75602dc9f2529e6ba6db02fa53d057ce0f8c (diff) |
nspawn: suffix the nspawn cgroups with ".nspawn"
As discussed with Dan Berrange it's a good idea to suffix all objects in
the cgroup tree with ".something", so that when the system is
partitioned using a resource management tool we can drop objects of
different types into the same partition directory without generate
namespace conflicts.
We'l add this to the Pax Control Group document as soon as write access
to the fdo wiki is restored.
Diffstat (limited to 'src/test/test-cgroup-util.c')
-rw-r--r-- | src/test/test-cgroup-util.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/test/test-cgroup-util.c b/src/test/test-cgroup-util.c index 5eaa129418..f632df11eb 100644 --- a/src/test/test-cgroup-util.c +++ b/src/test/test-cgroup-util.c @@ -89,11 +89,51 @@ static void test_get_paths(void) { log_info("Machine = %s", d); } +static void test_proc(void) { + _cleanup_closedir_ DIR *d = NULL; + struct dirent *de; + int r; + + d = opendir("/proc"); + assert_se(d); + + FOREACH_DIRENT(de, d, break) { + _cleanup_free_ char *path = NULL, *path_shifted = NULL, *session = NULL, *unit = NULL, *user_unit = NULL, *machine = NULL, *prefix = NULL; + pid_t pid; + + if (de->d_type != DT_DIR && + de->d_type != DT_UNKNOWN) + continue; + + r = parse_pid(de->d_name, &pid); + if (r < 0) + continue; + + cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, pid, &path); + cg_pid_get_path_shifted(pid, &prefix, &path_shifted); + cg_pid_get_session(pid, &session); + cg_pid_get_unit(pid, &unit); + cg_pid_get_user_unit(pid, &user_unit); + cg_pid_get_machine_name(pid, &machine); + + printf("%lu\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", + (unsigned long) pid, + path, + prefix, + path_shifted, + session, + unit, + user_unit, + machine); + } +} + int main(void) { test_path_decode_unit(); test_path_get_unit(); test_path_get_user_unit(); test_get_paths(); + test_proc(); return 0; } |