msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2015-01-04 23:49+0900\n"
+"POT-Creation-Date: 2015-02-04 23:33+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#. type: SH
-#: build/C/man3/CPU_SET.3:241 build/C/man2/clone.2:1030 build/C/man2/kcmp.2:198 build/C/man3/sched_getcpu.3:70 build/C/man2/sched_setaffinity.2:148 build/C/man2/sched_setattr.2:348 build/C/man2/setns.2:181 build/C/man2/unshare.2:329
+#: build/C/man3/CPU_SET.3:241 build/C/man2/clone.2:1031 build/C/man2/kcmp.2:198 build/C/man3/sched_getcpu.3:70 build/C/man2/sched_setaffinity.2:148 build/C/man2/sched_setattr.2:348 build/C/man2/setns.2:186 build/C/man2/unshare.2:330
#, no-wrap
msgid "VERSIONS"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/CPU_SET.3:270 build/C/man2/clone.2:1037 build/C/man2/kcmp.2:202 build/C/man2/sched_get_priority_max.2:113 build/C/man3/sched_getcpu.3:77 build/C/man2/sched_rr_get_interval.2:94 build/C/man2/sched_setaffinity.2:159 build/C/man2/sched_setattr.2:351 build/C/man2/sched_setparam.2:119 build/C/man2/sched_setscheduler.2:170 build/C/man2/sched_yield.2:52 build/C/man2/setns.2:186 build/C/man2/unshare.2:333
+#: build/C/man3/CPU_SET.3:270 build/C/man2/clone.2:1038 build/C/man2/kcmp.2:202 build/C/man2/sched_get_priority_max.2:113 build/C/man3/sched_getcpu.3:77 build/C/man2/sched_rr_get_interval.2:94 build/C/man2/sched_setaffinity.2:159 build/C/man2/sched_setattr.2:351 build/C/man2/sched_setparam.2:119 build/C/man2/sched_setscheduler.2:170 build/C/man2/sched_yield.2:52 build/C/man2/setns.2:191 build/C/man2/unshare.2:334
#, no-wrap
msgid "CONFORMING TO"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/CPU_SET.3:272 build/C/man2/clone.2:1041 build/C/man2/kcmp.2:205 build/C/man3/sched_getcpu.3:80 build/C/man2/sched_rr_get_interval.2:96 build/C/man2/sched_setaffinity.2:161 build/C/man2/sched_setattr.2:353 build/C/man2/sched_setparam.2:121 build/C/man2/sched_setscheduler.2:173 build/C/man2/sched_yield.2:54 build/C/man7/sched.7:611 build/C/man2/setns.2:190 build/C/man2/unshare.2:337
+#: build/C/man3/CPU_SET.3:272 build/C/man2/clone.2:1042 build/C/man2/kcmp.2:205 build/C/man3/sched_getcpu.3:80 build/C/man2/sched_rr_get_interval.2:96 build/C/man2/sched_setaffinity.2:161 build/C/man2/sched_setattr.2:353 build/C/man2/sched_setparam.2:121 build/C/man2/sched_setscheduler.2:173 build/C/man2/sched_yield.2:54 build/C/man7/sched.7:611 build/C/man2/setns.2:195 build/C/man2/unshare.2:338
#, no-wrap
msgid "NOTES"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/CPU_SET.3:300 build/C/man2/clone.2:1066 build/C/man2/sched_setattr.2:369 build/C/man2/sched_setscheduler.2:214
+#: build/C/man3/CPU_SET.3:300 build/C/man2/clone.2:1067 build/C/man2/sched_setattr.2:369 build/C/man2/sched_setscheduler.2:214
#, no-wrap
msgid "BUGS"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/CPU_SET.3:312 build/C/man2/clone.2:1108 build/C/man2/setns.2:196 build/C/man2/unshare.2:371
+#: build/C/man3/CPU_SET.3:312 build/C/man2/clone.2:1109 build/C/man2/setns.2:201 build/C/man2/unshare.2:372
#, no-wrap
msgid "EXAMPLE"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/CPU_SET.3:356 build/C/man2/clone.2:1205 build/C/man2/kcmp.2:222 build/C/man2/sched_get_priority_max.2:115 build/C/man3/sched_getcpu.3:100 build/C/man2/sched_rr_get_interval.2:132 build/C/man2/sched_setaffinity.2:226 build/C/man2/sched_setattr.2:385 build/C/man2/sched_setparam.2:127 build/C/man2/sched_setscheduler.2:222 build/C/man2/sched_yield.2:79 build/C/man7/sched.7:664 build/C/man2/setns.2:283 build/C/man2/unshare.2:458
+#: build/C/man3/CPU_SET.3:356 build/C/man2/clone.2:1206 build/C/man2/kcmp.2:222 build/C/man2/sched_get_priority_max.2:115 build/C/man3/sched_getcpu.3:100 build/C/man2/sched_rr_get_interval.2:132 build/C/man2/sched_setaffinity.2:226 build/C/man2/sched_setattr.2:385 build/C/man2/sched_setparam.2:127 build/C/man2/sched_setscheduler.2:222 build/C/man2/sched_yield.2:79 build/C/man7/sched.7:664 build/C/man2/setns.2:288 build/C/man2/unshare.2:459
#, no-wrap
msgid "SEE ALSO"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/CPU_SET.3:361 build/C/man2/clone.2:1220 build/C/man2/kcmp.2:225 build/C/man2/sched_get_priority_max.2:125 build/C/man3/sched_getcpu.3:103 build/C/man2/sched_rr_get_interval.2:134 build/C/man2/sched_setaffinity.2:248 build/C/man2/sched_setattr.2:408 build/C/man2/sched_setparam.2:142 build/C/man2/sched_setscheduler.2:242 build/C/man2/sched_yield.2:81 build/C/man7/sched.7:702 build/C/man2/setns.2:290 build/C/man2/unshare.2:469
+#: build/C/man3/CPU_SET.3:361 build/C/man2/clone.2:1221 build/C/man2/kcmp.2:225 build/C/man2/sched_get_priority_max.2:125 build/C/man3/sched_getcpu.3:103 build/C/man2/sched_rr_get_interval.2:134 build/C/man2/sched_setaffinity.2:248 build/C/man2/sched_setattr.2:408 build/C/man2/sched_setparam.2:142 build/C/man2/sched_setscheduler.2:242 build/C/man2/sched_yield.2:81 build/C/man7/sched.7:702 build/C/man2/setns.2:295 build/C/man2/unshare.2:470
#, no-wrap
msgid "COLOPHON"
msgstr ""
#. type: Plain text
-#: build/C/man3/CPU_SET.3:369 build/C/man2/clone.2:1228 build/C/man2/kcmp.2:233 build/C/man2/sched_get_priority_max.2:133 build/C/man3/sched_getcpu.3:111 build/C/man2/sched_rr_get_interval.2:142 build/C/man2/sched_setaffinity.2:256 build/C/man2/sched_setattr.2:416 build/C/man2/sched_setparam.2:150 build/C/man2/sched_setscheduler.2:250 build/C/man2/sched_yield.2:89 build/C/man7/sched.7:710 build/C/man2/setns.2:298 build/C/man2/unshare.2:477
+#: build/C/man3/CPU_SET.3:369 build/C/man2/clone.2:1229 build/C/man2/kcmp.2:233 build/C/man2/sched_get_priority_max.2:133 build/C/man3/sched_getcpu.3:111 build/C/man2/sched_rr_get_interval.2:142 build/C/man2/sched_setaffinity.2:256 build/C/man2/sched_setattr.2:416 build/C/man2/sched_setparam.2:150 build/C/man2/sched_setscheduler.2:250 build/C/man2/sched_yield.2:89 build/C/man7/sched.7:710 build/C/man2/setns.2:303 build/C/man2/unshare.2:478
msgid ""
-"This page is part of release 3.76 of the Linux I<man-pages> project. A "
+"This page is part of release 3.79 of the Linux I<man-pages> project. A "
"description of the project, information about reporting bugs, and the latest "
"version of this page, can be found at "
"\\%http://www.kernel.org/doc/man-pages/."
msgstr ""
#. type: TH
-#: build/C/man2/clone.2:42 build/C/man2/setns.2:8 build/C/man2/unshare.2:20
+#: build/C/man2/clone.2:42 build/C/man2/unshare.2:20
#, no-wrap
msgid "2014-09-21"
msgstr ""
#: build/C/man2/clone.2:424
msgid ""
"(This flag first became meaningful for B<clone>() in Linux 2.6.23, the "
-"current B<clone()> semantics were merged in Linux 3.5, and the final pieces "
+"current B<clone>() semantics were merged in Linux 3.5, and the final pieces "
"to make the user namespaces completely usable were merged in Linux 3.8.)"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/clone.2:887 build/C/man2/clone.2:894 build/C/man2/clone.2:909 build/C/man2/clone.2:926 build/C/man2/clone.2:934 build/C/man2/clone.2:946 build/C/man2/clone.2:952 build/C/man2/clone.2:962 build/C/man2/clone.2:970 build/C/man2/clone.2:978 build/C/man2/kcmp.2:181 build/C/man2/sched_get_priority_max.2:108 build/C/man2/sched_rr_get_interval.2:84 build/C/man2/sched_setaffinity.2:120 build/C/man2/sched_setaffinity.2:128 build/C/man2/sched_setattr.2:276 build/C/man2/sched_setattr.2:300 build/C/man2/sched_setattr.2:323 build/C/man2/sched_setparam.2:97 build/C/man2/sched_setparam.2:104 build/C/man2/sched_setscheduler.2:146 build/C/man2/sched_setscheduler.2:153 build/C/man2/sched_setscheduler.2:158 build/C/man2/setns.2:150 build/C/man2/setns.2:155 build/C/man2/setns.2:159 build/C/man2/setns.2:163 build/C/man2/setns.2:170 build/C/man2/unshare.2:283 build/C/man2/unshare.2:287
+#: build/C/man2/clone.2:887 build/C/man2/clone.2:894 build/C/man2/clone.2:909 build/C/man2/clone.2:926 build/C/man2/clone.2:934 build/C/man2/clone.2:946 build/C/man2/clone.2:952 build/C/man2/clone.2:962 build/C/man2/clone.2:970 build/C/man2/clone.2:978 build/C/man2/kcmp.2:181 build/C/man2/sched_get_priority_max.2:108 build/C/man2/sched_rr_get_interval.2:84 build/C/man2/sched_setaffinity.2:120 build/C/man2/sched_setaffinity.2:128 build/C/man2/sched_setattr.2:276 build/C/man2/sched_setattr.2:300 build/C/man2/sched_setattr.2:323 build/C/man2/sched_setparam.2:97 build/C/man2/sched_setparam.2:104 build/C/man2/sched_setscheduler.2:146 build/C/man2/sched_setscheduler.2:153 build/C/man2/sched_setscheduler.2:158 build/C/man2/setns.2:150 build/C/man2/setns.2:155 build/C/man2/setns.2:159 build/C/man2/setns.2:164 build/C/man2/setns.2:168 build/C/man2/setns.2:175 build/C/man2/unshare.2:283 build/C/man2/unshare.2:287
#, no-wrap
msgid "B<EINVAL>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/clone.2:986 build/C/man2/setns.2:174 build/C/man2/unshare.2:296
+#: build/C/man2/clone.2:986 build/C/man2/setns.2:179 build/C/man2/unshare.2:296
#, no-wrap
msgid "B<ENOMEM>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/clone.2:991 build/C/man2/clone.2:1000 build/C/man2/clone.2:1004 build/C/man2/kcmp.2:185 build/C/man2/sched_setaffinity.2:135 build/C/man2/sched_setattr.2:339 build/C/man2/sched_setattr.2:342 build/C/man2/sched_setparam.2:109 build/C/man2/sched_setscheduler.2:164 build/C/man2/setns.2:177 build/C/man2/unshare.2:300 build/C/man2/unshare.2:303
+#: build/C/man2/clone.2:991 build/C/man2/clone.2:1000 build/C/man2/clone.2:1004 build/C/man2/kcmp.2:185 build/C/man2/sched_setaffinity.2:135 build/C/man2/sched_setattr.2:339 build/C/man2/sched_setattr.2:342 build/C/man2/sched_setparam.2:109 build/C/man2/sched_setscheduler.2:164 build/C/man2/setns.2:182 build/C/man2/unshare.2:300 build/C/man2/unshare.2:303
#, no-wrap
msgid "B<EPERM>"
msgstr ""
#. commit 3151527ee007b73a0ebd296010f1c0454a919c7d
#. FIXME What is the rationale for this restriction?
#. type: Plain text
-#: build/C/man2/clone.2:1021 build/C/man2/unshare.2:320
+#: build/C/man2/clone.2:1022 build/C/man2/unshare.2:321
msgid ""
-"B<CLONE_NEWUSER was specified in> I<flags> and the caller is in a chroot "
+"B<CLONE_NEWUSER> was specified in I<flags> and the caller is in a chroot "
"environment (i.e., the caller's root directory does not match the root "
"directory of the mount namespace in which it resides)."
msgstr ""
#. type: TP
-#: build/C/man2/clone.2:1021 build/C/man2/unshare.2:320
+#: build/C/man2/clone.2:1022 build/C/man2/unshare.2:321
#, no-wrap
msgid "B<EUSERS> (since Linux 3.11)"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1030 build/C/man2/unshare.2:329
+#: build/C/man2/clone.2:1031 build/C/man2/unshare.2:330
msgid ""
"B<CLONE_NEWUSER> was specified in I<flags>, and the call would cause the "
"limit on the number of nested user namespaces to be exceeded. See "
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1037
+#: build/C/man2/clone.2:1038
msgid ""
"There is no entry for B<clone>() in libc5. glibc2 provides B<clone>() as "
"described in this manual page."
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1041
+#: build/C/man2/clone.2:1042
msgid ""
"B<clone>() is Linux-specific and should not be used in programs intended to "
"be portable."
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1051
+#: build/C/man2/clone.2:1052
msgid ""
"In the kernel 2.4.x series, B<CLONE_THREAD> generally does not make the "
"parent of the new thread the same as the parent of the calling process. "
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1061
+#: build/C/man2/clone.2:1062
msgid ""
"For a while there was B<CLONE_DETACHED> (introduced in 2.5.32): parent wants "
"no child-exit signal. In 2.6.2 the need to give this together with "
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1066
+#: build/C/man2/clone.2:1067
msgid ""
"On i386, B<clone>() should not be called through vsyscall, but directly "
"through I<int $0x80>."
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1097
+#: build/C/man2/clone.2:1098
msgid ""
"Versions of the GNU C library that include the NPTL threading library "
"contain a wrapper function for B<getpid>(2) that performs caching of PIDs. "
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1100
+#: build/C/man2/clone.2:1101
#, no-wrap
msgid " #include E<lt>syscall.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1102
+#: build/C/man2/clone.2:1103
#, no-wrap
msgid " pid_t mypid;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1104
+#: build/C/man2/clone.2:1105
#, no-wrap
msgid " mypid = syscall(SYS_getpid);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1118
+#: build/C/man2/clone.2:1119
msgid ""
"The following program demonstrates the use of B<clone>() to create a child "
"process that executes in a separate UTS namespace. The child changes the "
msgstr ""
#. type: SS
-#: build/C/man2/clone.2:1118 build/C/man2/setns.2:250 build/C/man2/unshare.2:395
+#: build/C/man2/clone.2:1119 build/C/man2/setns.2:255 build/C/man2/unshare.2:396
#, no-wrap
msgid "Program source"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1128
+#: build/C/man2/clone.2:1129
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1131 build/C/man2/setns.2:261 build/C/man2/unshare.2:414
+#: build/C/man2/clone.2:1132 build/C/man2/setns.2:266 build/C/man2/unshare.2:415
#, no-wrap
msgid ""
"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1136
+#: build/C/man2/clone.2:1137
#, no-wrap
msgid ""
"static int /* Start function for cloned child */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1138
+#: build/C/man2/clone.2:1139
#, no-wrap
msgid " /* Change hostname in UTS namespace of child */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1141
+#: build/C/man2/clone.2:1142
#, no-wrap
msgid ""
" if (sethostname(arg, strlen(arg)) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1143
+#: build/C/man2/clone.2:1144
#, no-wrap
msgid " /* Retrieve and display hostname */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1147
+#: build/C/man2/clone.2:1148
#, no-wrap
msgid ""
" if (uname(&uts) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1151
+#: build/C/man2/clone.2:1152
#, no-wrap
msgid ""
" /* Keep the namespace open for a while, by sleeping.\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1153
+#: build/C/man2/clone.2:1154
#, no-wrap
msgid " sleep(200);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1156
+#: build/C/man2/clone.2:1157
#, no-wrap
msgid ""
" return 0; /* Child terminates now */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1158
+#: build/C/man2/clone.2:1159
#, no-wrap
msgid "#define STACK_SIZE (1024 * 1024) /* Stack size for cloned child */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1166
+#: build/C/man2/clone.2:1167
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1171
+#: build/C/man2/clone.2:1172
#, no-wrap
msgid ""
" if (argc E<lt> 2) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1173
+#: build/C/man2/clone.2:1174
#, no-wrap
msgid " /* Allocate stack for child */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1178
+#: build/C/man2/clone.2:1179
#, no-wrap
msgid ""
" stack = malloc(STACK_SIZE);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1181
+#: build/C/man2/clone.2:1182
#, no-wrap
msgid ""
" /* Create child that has its own UTS namespace;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1186
+#: build/C/man2/clone.2:1187
#, no-wrap
msgid ""
" pid = clone(childFunc, stackTop, CLONE_NEWUTS | SIGCHLD, argv[1]);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1188
+#: build/C/man2/clone.2:1189
#, no-wrap
msgid " /* Parent falls through to here */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1190
+#: build/C/man2/clone.2:1191
#, no-wrap
msgid " sleep(1); /* Give child time to change its hostname */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1193
+#: build/C/man2/clone.2:1194
#, no-wrap
msgid ""
" /* Display hostname in parent\\(aqs UTS namespace. This will be\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1197
+#: build/C/man2/clone.2:1198
#, no-wrap
msgid ""
" if (uname(&uts) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1201
+#: build/C/man2/clone.2:1202
#, no-wrap
msgid ""
" if (waitpid(pid, NULL, 0) == -1) /* Wait for child */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1204
+#: build/C/man2/clone.2:1205
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/clone.2:1220
+#: build/C/man2/clone.2:1221
msgid ""
"B<fork>(2), B<futex>(2), B<getpid>(2), B<gettid>(2), B<kcmp>(2), "
"B<set_thread_area>(2), B<set_tid_address>(2), B<setns>(2), B<tkill>(2), "
"B<sched_setscheduler>(2), B<sched_setparam>(2), B<nice>(2), and (other than "
"the ability to set the priority of all processes belonging to a specified "
"user or all processes in a specified group) B<setpriority>(2). "
-"Analogously, B<sched_getattr()> provides a superset of the functionality of "
+"Analogously, B<sched_getattr>() provides a superset of the functionality of "
"B<sched_getscheduler>(2), B<sched_getparam>(2), and (partially) "
"B<getpriority>(2)."
msgstr ""
msgid "SETNS"
msgstr ""
+#. type: TH
+#: build/C/man2/setns.2:8
+#, no-wrap
+msgid "2015-01-10"
+msgstr ""
+
#. type: Plain text
#: build/C/man2/setns.2:11
msgid "setns - reassociate thread with a namespace"
#. type: Plain text
#: build/C/man2/setns.2:59
-msgid "I<fd> must refer to a PID namespace."
+msgid "I<fd> must refer to a descendant PID namespace."
msgstr ""
#. type: TP
#: build/C/man2/setns.2:97
msgid ""
"B<CLONE_NEWPID> behaves somewhat differently from the other I<nstype> "
-"values: reassociating the calling thread with a PID namespace only changes "
+"values: reassociating the calling thread with a PID namespace changes only "
"the PID namespace that child processes of the caller will be created in; it "
"does not change the PID namespace of the caller itself. Reassociating with "
-"a PID namespace is only allowed if the PID namespace specified by I<fd> is a "
+"a PID namespace is allowed only if the PID namespace specified by I<fd> is a "
"descendant (child, grandchild, etc.) of the PID namespace of the caller. "
"For further details on PID namespaces, see B<pid_namespaces>(7)."
msgstr ""
#. type: Plain text
#: build/C/man2/setns.2:145
msgid ""
-"On success, I<setns>() returns 0. On failure, -1 is returned and I<errno> "
+"On success, B<setns>() returns 0. On failure, -1 is returned and I<errno> "
"is set to indicate the error."
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:163
+#: build/C/man2/setns.2:164
+msgid ""
+"The caller tried to join an ancestor (parent, grandparent, etc...) pid "
+"namespace."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/setns.2:168
msgid ""
"The caller attempted to join the user namespace in which it is already a "
"member."
#. commit e66eded8309ebf679d3d3c1f5820d1f2ca332c71
#. type: Plain text
-#: build/C/man2/setns.2:170
+#: build/C/man2/setns.2:175
msgid ""
"The caller shares filesystem (B<CLONE_FS>) state (in particular, the root "
"directory) with other processes and tried to join a new user namespace."
#. See kernel/user_namespace.c::userns_install() [kernel 3.15 sources]
#. type: Plain text
-#: build/C/man2/setns.2:174
+#: build/C/man2/setns.2:179
msgid "The caller is multithreaded and tried to join a new user namespace."
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:177
+#: build/C/man2/setns.2:182
msgid "Cannot allocate sufficient memory to change the specified namespace."
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:181
+#: build/C/man2/setns.2:186
msgid "The calling thread did not have the required capability for this operation."
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:186
+#: build/C/man2/setns.2:191
msgid ""
"The B<setns>() system call first appeared in Linux in kernel 3.0; library "
"support was added to glibc in version 2.14."
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:190
+#: build/C/man2/setns.2:195
msgid "The B<setns>() system call is Linux-specific."
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:196
+#: build/C/man2/setns.2:201
msgid ""
"Not all of the attributes that can be shared when a new thread is created "
"using B<clone>(2) can be changed using B<setns>()."
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:205
+#: build/C/man2/setns.2:210
msgid ""
"The program below takes two or more arguments. The first argument specifies "
"the pathname of a namespace file in an existing I</proc/[pid]/ns/> "
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:215
+#: build/C/man2/setns.2:220
msgid ""
"The following shell session demonstrates the use of this program (compiled "
"as a binary named I<ns_exec>) in conjunction with the B<CLONE_NEWUTS> "
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:223
+#: build/C/man2/setns.2:228
msgid ""
"We begin by executing the example program in B<clone>(2) in the "
"background. That program creates a child in a separate UTS namespace. The "
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:235
+#: build/C/man2/setns.2:240
#, no-wrap
msgid ""
"$ B<su> # Need privilege for namespace operations\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:242
+#: build/C/man2/setns.2:247
msgid ""
"We then run the program shown below, using it to execute a shell. Inside "
"that shell, we verify that the hostname is the one set by the child created "
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:248
+#: build/C/man2/setns.2:253
#, no-wrap
msgid ""
"# B<./ns_exec /proc/3550/ns/uts /bin/bash>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:258
+#: build/C/man2/setns.2:263
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:266
+#: build/C/man2/setns.2:271
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:271
+#: build/C/man2/setns.2:276
#, no-wrap
msgid ""
" if (argc E<lt> 3) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:275
+#: build/C/man2/setns.2:280
#, no-wrap
msgid ""
" fd = open(argv[1], O_RDONLY); /* Get descriptor for namespace */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:278
+#: build/C/man2/setns.2:283
#, no-wrap
msgid ""
" if (setns(fd, 0) == -1) /* Join that namespace */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:282
+#: build/C/man2/setns.2:287
#, no-wrap
msgid ""
" execvp(argv[2], &argv[2]); /* Execute a command in namespace */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/setns.2:290
+#: build/C/man2/setns.2:295
msgid ""
"B<clone>(2), B<fork>(2), B<unshare>(2), B<vfork>(2), B<namespaces>(7), "
"B<unix>(7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:333
+#: build/C/man2/unshare.2:334
msgid "The B<unshare>() system call was added to Linux in kernel 2.6.16."
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:337
+#: build/C/man2/unshare.2:338
msgid "The B<unshare>() system call is Linux-specific."
msgstr ""
#. be incrementally added to unshare without affecting legacy
#. applications using unshare.
#. type: Plain text
-#: build/C/man2/unshare.2:371
+#: build/C/man2/unshare.2:372
msgid ""
"Not all of the process attributes that can be shared when a new process is "
"created using B<clone>(2) can be unshared using B<unshare>(). In "
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:380
+#: build/C/man2/unshare.2:381
msgid ""
"The program below provides a simple implementation of the B<unshare>(1) "
"command, which unshares one or more namespaces and executes the command "
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:389
+#: build/C/man2/unshare.2:390
#, no-wrap
msgid ""
"$ B<readlink /proc/$$/ns/mnt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:395
+#: build/C/man2/unshare.2:396
msgid ""
"The differing output of the two B<readlink>(1) commands shows that the two "
"shells are in different mount namespaces."
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:399
+#: build/C/man2/unshare.2:400
#, no-wrap
msgid "/* unshare.c\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:408
+#: build/C/man2/unshare.2:409
#, no-wrap
msgid ""
" A simple implementation of the unshare(1) command: unshare\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:411
+#: build/C/man2/unshare.2:412
#, no-wrap
msgid ""
"/* A simple error-handling function: print an error message based\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:428
+#: build/C/man2/unshare.2:429
#, no-wrap
msgid ""
"static void\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:433
+#: build/C/man2/unshare.2:434
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:435
+#: build/C/man2/unshare.2:436
#, no-wrap
msgid " flags = 0;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:447
+#: build/C/man2/unshare.2:448
#, no-wrap
msgid ""
" while ((opt = getopt(argc, argv, \"imnpuU\")) != -1) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:450
+#: build/C/man2/unshare.2:451
#, no-wrap
msgid ""
" if (optind E<gt>= argc)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:453
+#: build/C/man2/unshare.2:454
#, no-wrap
msgid ""
" if (unshare(flags) == -1)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:457
+#: build/C/man2/unshare.2:458
#, no-wrap
msgid ""
" execvp(argv[optind], &argv[optind]);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:466
+#: build/C/man2/unshare.2:467
msgid ""
"B<unshare>(1), B<clone>(2), B<fork>(2), B<kcmp>(2), B<setns>(2), "
"B<vfork>(2), B<namespaces>(7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/unshare.2:469
+#: build/C/man2/unshare.2:470
msgid "I<Documentation/unshare.txt> in the Linux kernel source tree"
msgstr ""