On 04/05/2018 09:02 AM, Konstantin Khlebnikov wrote: > On 05.04.2018 01:29, Eric W. Biederman wrote: >> Nagarathnam Muthusamy <nagarathnam.muthusamy@xxxxxxxxxx> writes: >> >>> On 04/04/2018 12:11 PM, Konstantin Khlebnikov wrote: >>>> Each process have different pids, one for each pid namespace it belongs. >>>> When interaction happens within single pid-ns translation isn't required. >>>> More complicated scenarios needs special handling. >>>> >>>> For example: >>>> - reading pid-files or logs written inside container with pid namespace >>>> - attaching with ptrace to tasks from different pid namespace >>>> - passing pids across pid namespaces in any kind of API >>>> >>>> Currently there are several interfaces that could be used here: >>>> >>>> Pid namespaces are identified by inode number of /proc/[pid]/ns/pid. >> >> Using the inode number in interfaces is not an option. Especially not >> withou referencing the device number for the filesystem as well. > > This is supposed to be single-instance fs, > not part of proc but referenced but its magic "symlinks". > > Device numbers are not mentioned in "man namespaces". Thanks for the heads-up! That was a bug in the man-page. ioctl_ns(2) already says the right thing. Now I patches namespaces(7), as below. Cheers, Michael diff --git a/man7/namespaces.7 b/man7/namespaces.7 index 725ebaff6..3c155de7e 100644 --- a/man7/namespaces.7 +++ b/man7/namespaces.7 @@ -154,11 +154,14 @@ In Linux 3.7 and earlier, these files were visible as hard links. Since Linux 3.8, .\" commit bf056bfa80596a5d14b26b17276a56a0dcb080e5 they appear as symbolic links. -If two processes are in the same namespace, then the inode numbers of their +If two processes are in the same namespace, +then the device IDs and inode numbers of their .IR /proc/[pid]/ns/xxx symbolic links will be the same; an application can check this using the +.I stat.st_dev +and .I stat.st_ino -field returned by +fields returned by .BR stat (2). The content of this symbolic link is a string containing the namespace type and inode number as in the following example: -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/ -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html