The patchset adds the pids of the lxc-attach process to the cgroup of the
corresponding container.
Because this is my first patch for lxc, someone should analyze it.
If you agree with the solution then integrate it.
If there is anything i should do better in future tell me please.
Axel Schöner
--- lxc_roh/src/lxc/namespace.c 2011-10-02 18:57:40.000000000 +0200
+++ lxc/src/lxc/namespace.c 2011-10-02 19:33:22.000000000 +0200
@@ -82,7 +82,7 @@
return ret;
}
-int lxc_attach(pid_t pid)
+int lxc_attach(pid_t pid, const char* cgname)
{
char path[MAXPATHLEN];
char *ns[] = { "pid", "mnt", "net", "ipc", "uts" };
@@ -104,6 +104,13 @@
return -1;
}
}
+ pid_t cpid = getpid();
+
+ /* Let's add the pid to the 'tasks' file */
+ if (lxc_cgroup_append_task(cgname, cpid)) {
+ SYSERROR("failed to attach pid '%d' to '%s'", cpid, cgname);
+ return -1;
+ }
for (i = 0; i < size; i++) {
if (setns(fd[i], 0)) {
--- lxc_roh/src/lxc/namespace.c 2011-10-02 18:57:40.000000000 +0200
+++ lxc/src/lxc/namespace.c 2011-10-02 19:33:22.000000000 +0200
@@ -82,7 +82,7 @@
return ret;
}
-int lxc_attach(pid_t pid)
+int lxc_attach(pid_t pid, const char* cgname)
{
char path[MAXPATHLEN];
char *ns[] = { "pid", "mnt", "net", "ipc", "uts" };
@@ -104,6 +104,13 @@
return -1;
}
}
+ pid_t cpid = getpid();
+
+ /* Let's add the pid to the 'tasks' file */
+ if (lxc_cgroup_append_task(cgname, cpid)) {
+ SYSERROR("failed to attach pid '%d' to '%s'", cpid, cgname);
+ return -1;
+ }
for (i = 0; i < size; i++) {
if (setns(fd[i], 0)) {
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel