On 02/23/2011 08:39 AM, Maheswara Reddy C - ERS, HCL Tech wrote: > Hi Daniel, > > We could able to create ten (N) number of namespaces, how can we identify the > specified namespace. > > Shall we use the return value of unshare() , as unique namespace ID ?
No, the unshare returns 0 on success or < 0 on error. There is no mechanism to assign a namespace an id. May be you can use the pid number of the first process in the network namespace as an unique identifier. > Thanks > Mahesh > -----Original Message----- > From: Daniel Lezcano [mailto:daniel.lezc...@free.fr] > Sent: Tuesday, February 22, 2011 5:26 PM > To: Maheswara Reddy C - ERS, HCL Tech > Cc: lxc-devel@lists.sourceforge.net > Subject: Re: [lxc-devel] do pid1 and pid2 run in the same network namespace > > On 02/22/2011 12:22 PM, Maheswara Reddy C - ERS, HCL Tech wrote: >>> Then it is quite easy. You just have to fork ten times the routine in the >>> program I gave you in the previous email. >> Hi Daniel, >> >> But I want to run two different (fork() run same copy) process/threads in >> each namespace, that's why I am using clone() which take function pointer of >> each process/thered to start. > Have fun ;) > > #include<errno.h> > #include<sched.h> > #include<stdio.h> > #include<unistd.h> > #include<stdlib.h> > #include<sys/types.h> > #include<sys/wait.h> > > #define NRNS 10 > > int myroutine1(void) > { > return 0; > } > > int myroutine2(void) > { > return 0; > } > > int main(int argc, char *argv[]) > { > > int i; > pid_t pid; > > for (i = 0; i< NRNS; i++) { > > /* create a new network namespace for my childs */ > if (unshare(CLONE_NEWNET)) { > perror("unshare"); > return 1; > } > > pid = fork(); > if (pid< 0) { > perror("fork"); > return 1; > } > > if (!pid) > exit(myroutine1()); > > pid = fork(); > if (pid< 0) { > perror("fork2"); > return 1; > } > > if (!pid) > exit(myroutine2()); > > } > > /* create a new netns to not share with the last one > * At the end we have 10 netns + 1 this one > */ > if (unshare(CLONE_NEWNET)) { > perror("unshare2"); > return 1; > } > > for (;;) { > > pid = wait(NULL); > if (pid< 0) { > if (errno == ECHILD) > return 0; > if (errno == EINTR) > continue; > perror("wait"); > return 1; > } > } > > } ------------------------------------------------------------------------------ Free Software Download: Index, Search & Analyze Logs and other IT data in Real-Time with Splunk. Collect, index and harness all the fast moving IT data generated by your applications, servers and devices whether physical, virtual or in the cloud. Deliver compliance at lower cost and gain new business insights. http://p.sf.net/sfu/splunk-dev2dev _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel