int cpu;
char vhi_name[65],
filename[128],
- cgroup[65],
+ cgroup[129],
buf[30];
int fd;
ssize_t cgroup_len;
perror("read(cgroup/mnt)");
return;
}
+ if (cgroup_len > 0) {
+ close(fd);
+ while (cgroup[cgroup_len - 1] == '\n' || cgroup[cgroup_len - 1] == '\r')
+ cgroup_len--;
+ cgroup[cgroup_len] = '/';
+ cgroup_len += 1;
+ cgroup[cgroup_len] = 0;
+ }
+ }
+
+ if ((fd = open(DEFAULTCONFDIR "/cgroup/base", O_RDONLY)) != -1) {
+ len = read(fd, cgroup + cgroup_len, sizeof(cgroup) - cgroup_len);
+ if (len == -1) {
+ perror("read(cgroup/base)");
+ return;
+ }
close(fd);
- cgroup[cgroup_len] = '/';
- cgroup_len += 1;
- cgroup[cgroup_len] = 0;
+ if (len > 0) {
+ while (cgroup[cgroup_len + len - 1] == '\n' || cgroup[cgroup_len + len - 1] == '\r')
+ len--;
+ cgroup_len += len;
+ if (cgroup[cgroup_len - 1] != '/') {
+ cgroup[cgroup_len] = '/';
+ cgroup_len += 1;
+ }
+ cgroup[cgroup_len] = 0;
+ }
}
len = strlen(vhi_name);