</programlisting>
<para>
- For the moment the easiest way to have all the features in the
- kernel is to use the git tree at:
- <systemitem>
- git://git.kernel.org/pub/scm/linux/kernel/git/daveh/linux-2.6-lxc.git
- </systemitem>
- But the kernel version >= 2.6.27 shipped with the distros, may
+ The kernel version >= 2.6.27 shipped with the distros, will
work with <command>lxc</command>, this one will have less
functionalities but enough to be interesting.
- The planned kernel version which <command>lxc</command> should
- be fully functionaly is 2.6.29.
+ With the kernel 2.6.29, <command>lxc</command> is fully
+ functional.
</para>
<para>
Before using the <command>lxc</command>, your system should be
configured with the file capabilities, otherwise you will need
- to run the <command>lxc</command> commands as root. The
- control group should be mounted anywhere, eg:
- <command>mount -t cgroup cgroup /cgroup</command>
+ to run the <command>lxc</command> commands as root.
</para>
+
+ <para>
+ The control group can be mounted anywhere, eg:
+ <command>mount -t cgroup cgroup /cgroup</command>.
+
+ If you want to dedicate a specific cgroup mount point
+ for <command>lxc</command>, that is to have different cgroups
+ mounted at different places with different options but
+ let <command>lxc</command> to use one location, you can bind
+ the mount point with the <option>lxc</option> name, eg:
+ <command>mount -t cgroup lxc /cgroup4lxc</command> or
+ <command>mount -t cgroup -ons,cpuset,freezer,devices
+ lxc /cgroup4lxc</command>
+
+ </para>
+
</refsect1>
<refsect1>
}
while ((mntent = getmntent(file))) {
- if (strcmp(mntent->mnt_type, "cgroup"))
- continue;
- strcpy(mnt, mntent->mnt_dir);
- err = 0;
- break;
+
+ /* there is a cgroup mounted named "lxc" */
+ if (!strcmp(mntent->mnt_fsname, "lxc") &&
+ !strcmp(mntent->mnt_type, "cgroup")) {
+ strcpy(mnt, mntent->mnt_dir);
+ err = 0;
+ break;
+ }
+
+ /* fallback to the first non-lxc cgroup found */
+ if (!strcmp(mntent->mnt_type, "cgroup") && err) {
+ strcpy(mnt, mntent->mnt_dir);
+ err = 0;
+ }
};
fclose(file);
ret = rename(oldname, newname);
if (ret)
- SYSERROR("failed to rename cgroup %s->%s",
- oldname, newname);
+ SYSERROR("failed to rename cgroup %s->%s", oldname, newname);
return ret;
}
unlink(lxc);
ret = symlink(nsgroup, lxc);
if (ret)
- SYSERROR("failed to create symlink %s->%s",
- nsgroup, lxc);
+ SYSERROR("failed to create symlink %s->%s", nsgroup, lxc);
return ret;
}