1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2012-03-19 23:50+0900\n"
10 "PO-Revision-Date: 2012-03-22 00:37+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
19 #: build/C/man2/acct.2:32 build/C/man5/acct.5:23
25 #: build/C/man2/acct.2:32
31 #: build/C/man2/acct.2:32 build/C/man5/acct.5:23
32 #: build/C/man7/capabilities.7:47 build/C/man2/capget.2:11
33 #: build/C/man7/cpuset.7:24 build/C/man7/credentials.7:25
34 #: build/C/man2/getgid.2:25 build/C/man2/getgroups.2:31
35 #: build/C/man2/getpid.2:23 build/C/man2/getpriority.2:46
36 #: build/C/man2/getresuid.2:27 build/C/man2/getrlimit.2:64
37 #: build/C/man2/getrusage.2:39 build/C/man2/getsid.2:25
38 #: build/C/man2/getuid.2:26 build/C/man2/iopl.2:33
39 #: build/C/man2/ioprio_set.2:25 build/C/man2/ipc.2:26
40 #: build/C/man2/seteuid.2:27 build/C/man2/setfsgid.2:29
41 #: build/C/man2/setfsuid.2:29 build/C/man2/setgid.2:27
42 #: build/C/man2/setpgid.2:46 build/C/man2/setresuid.2:26
43 #: build/C/man2/setreuid.2:43 build/C/man2/setsid.2:29
44 #: build/C/man2/setuid.2:28 build/C/man7/svipc.7:25 build/C/man3/ulimit.3:27
50 #: build/C/man2/acct.2:32 build/C/man5/acct.5:23
51 #: build/C/man7/capabilities.7:47 build/C/man2/capget.2:11
52 #: build/C/man7/cpuset.7:24 build/C/man7/credentials.7:25
53 #: build/C/man2/getgid.2:25 build/C/man2/getgroups.2:31
54 #: build/C/man2/getpid.2:23 build/C/man2/getpriority.2:46
55 #: build/C/man2/getresuid.2:27 build/C/man2/getrlimit.2:64
56 #: build/C/man2/getrusage.2:39 build/C/man2/getsid.2:25
57 #: build/C/man2/getuid.2:26 build/C/man2/iopl.2:33
58 #: build/C/man2/ioprio_set.2:25 build/C/man2/ipc.2:26
59 #: build/C/man2/seteuid.2:27 build/C/man2/setfsgid.2:29
60 #: build/C/man2/setfsuid.2:29 build/C/man2/setgid.2:27
61 #: build/C/man2/setpgid.2:46 build/C/man2/setresuid.2:26
62 #: build/C/man2/setreuid.2:43 build/C/man2/setsid.2:29
63 #: build/C/man2/setuid.2:28 build/C/man7/svipc.7:25 build/C/man3/ulimit.3:27
65 msgid "Linux Programmer's Manual"
66 msgstr "Linux Programmer's Manual"
69 #: build/C/man2/acct.2:33 build/C/man5/acct.5:24
70 #: build/C/man7/capabilities.7:48 build/C/man2/capget.2:12
71 #: build/C/man7/cpuset.7:25 build/C/man7/credentials.7:26
72 #: build/C/man2/getgid.2:26 build/C/man2/getgroups.2:32
73 #: build/C/man2/getpid.2:24 build/C/man2/getpriority.2:47
74 #: build/C/man2/getresuid.2:28 build/C/man2/getrlimit.2:65
75 #: build/C/man2/getrusage.2:40 build/C/man2/getsid.2:26
76 #: build/C/man2/getuid.2:27 build/C/man2/iopl.2:34
77 #: build/C/man2/ioprio_set.2:26 build/C/man2/ipc.2:27
78 #: build/C/man2/seteuid.2:28 build/C/man2/setfsgid.2:30
79 #: build/C/man2/setfsuid.2:30 build/C/man2/setgid.2:28
80 #: build/C/man2/setpgid.2:47 build/C/man2/setresuid.2:27
81 #: build/C/man2/setreuid.2:44 build/C/man2/setsid.2:30
82 #: build/C/man2/setuid.2:29 build/C/man7/svipc.7:26 build/C/man3/ulimit.3:28
88 #: build/C/man2/acct.2:35
89 msgid "acct - switch process accounting on or off"
90 msgstr "acct - プロセス・アカウントのオンとオフを切り換える"
93 #: build/C/man2/acct.2:35 build/C/man5/acct.5:26 build/C/man2/capget.2:14
94 #: build/C/man2/getgid.2:28 build/C/man2/getgroups.2:34
95 #: build/C/man2/getpid.2:26 build/C/man2/getpriority.2:49
96 #: build/C/man2/getresuid.2:30 build/C/man2/getrlimit.2:67
97 #: build/C/man2/getrusage.2:42 build/C/man2/getsid.2:28
98 #: build/C/man2/getuid.2:29 build/C/man2/iopl.2:36
99 #: build/C/man2/ioprio_set.2:28 build/C/man2/ipc.2:29
100 #: build/C/man2/seteuid.2:30 build/C/man2/setfsgid.2:32
101 #: build/C/man2/setfsuid.2:32 build/C/man2/setgid.2:30
102 #: build/C/man2/setpgid.2:49 build/C/man2/setresuid.2:29
103 #: build/C/man2/setreuid.2:46 build/C/man2/setsid.2:32
104 #: build/C/man2/setuid.2:31 build/C/man7/svipc.7:28 build/C/man3/ulimit.3:30
110 #: build/C/man2/acct.2:39
112 msgid "B<#include E<lt>unistd.hE<gt>>\n"
113 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
116 #: build/C/man2/acct.2:41
118 msgid "B<int acct(const char *>I<filename>B<);>\n"
119 msgstr "B<int acct(const char *>I<filename>B<);>\n"
122 #: build/C/man2/acct.2:47 build/C/man2/getgroups.2:48
123 #: build/C/man2/getrlimit.2:84 build/C/man2/getsid.2:36
124 #: build/C/man2/seteuid.2:42 build/C/man2/setpgid.2:69
125 #: build/C/man2/setreuid.2:58
127 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
128 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
131 #: build/C/man2/acct.2:51
133 "B<acct>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
135 "B<acct>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
138 #: build/C/man2/acct.2:51 build/C/man5/acct.5:28
139 #: build/C/man7/capabilities.7:50 build/C/man2/capget.2:20
140 #: build/C/man7/cpuset.7:27 build/C/man7/credentials.7:28
141 #: build/C/man2/getgid.2:36 build/C/man2/getgroups.2:52
142 #: build/C/man2/getpid.2:34 build/C/man2/getpriority.2:57
143 #: build/C/man2/getresuid.2:38 build/C/man2/getrlimit.2:88
144 #: build/C/man2/getrusage.2:48 build/C/man2/getsid.2:49
145 #: build/C/man2/getuid.2:37 build/C/man2/iopl.2:40
146 #: build/C/man2/ioprio_set.2:33 build/C/man2/ipc.2:35
147 #: build/C/man2/seteuid.2:51 build/C/man2/setfsgid.2:37
148 #: build/C/man2/setfsuid.2:37 build/C/man2/setgid.2:36
149 #: build/C/man2/setpgid.2:96 build/C/man2/setresuid.2:37
150 #: build/C/man2/setreuid.2:68 build/C/man2/setsid.2:39
151 #: build/C/man2/setuid.2:37 build/C/man7/svipc.7:36 build/C/man3/ulimit.3:34
157 #: build/C/man2/acct.2:60
159 "The B<acct>() system call enables or disables process accounting. If "
160 "called with the name of an existing file as its argument, accounting is "
161 "turned on, and records for each terminating process are appended to "
162 "I<filename> as it terminates. An argument of NULL causes accounting to be "
165 "B<acct>() システムコールは、プロセス・アカウントの有効・無効を切り替える。 "
166 "既存のファイルの名前を引き数に指定して呼び出されたら、 アカウント (account) "
167 "が有効になり、 終了したプロセスの記録が I<filename> に追記される。 NULL を引"
168 "き数として呼び出されたらアカウントをオフにする。"
171 #: build/C/man2/acct.2:60 build/C/man2/capget.2:152
172 #: build/C/man2/getgroups.2:92 build/C/man2/getpriority.2:105
173 #: build/C/man2/getresuid.2:49 build/C/man2/getrlimit.2:430
174 #: build/C/man2/getrusage.2:180 build/C/man2/getsid.2:57
175 #: build/C/man2/iopl.2:65 build/C/man2/ioprio_set.2:139
176 #: build/C/man2/seteuid.2:65 build/C/man2/setfsgid.2:67
177 #: build/C/man2/setfsuid.2:67 build/C/man2/setgid.2:51
178 #: build/C/man2/setpgid.2:170 build/C/man2/setresuid.2:64
179 #: build/C/man2/setreuid.2:89 build/C/man2/setsid.2:50
180 #: build/C/man2/setuid.2:68 build/C/man3/ulimit.3:67
186 #: build/C/man2/acct.2:65 build/C/man2/capget.2:157
187 #: build/C/man2/getresuid.2:54 build/C/man2/getrusage.2:185
188 #: build/C/man2/iopl.2:70 build/C/man2/seteuid.2:70 build/C/man2/setgid.2:56
189 #: build/C/man2/setresuid.2:69 build/C/man2/setreuid.2:94
190 #: build/C/man2/setuid.2:73
192 "On success, zero is returned. On error, -1 is returned, and I<errno> is set "
195 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
199 #: build/C/man2/acct.2:65 build/C/man2/capget.2:171 build/C/man7/cpuset.7:1099
200 #: build/C/man2/getgid.2:42 build/C/man2/getgroups.2:106
201 #: build/C/man2/getpid.2:42 build/C/man2/getpriority.2:118
202 #: build/C/man2/getresuid.2:54 build/C/man2/getrlimit.2:435
203 #: build/C/man2/getrusage.2:185 build/C/man2/getsid.2:62
204 #: build/C/man2/getuid.2:43 build/C/man2/iopl.2:70
205 #: build/C/man2/ioprio_set.2:159 build/C/man2/seteuid.2:70
206 #: build/C/man2/setgid.2:56 build/C/man2/setpgid.2:191
207 #: build/C/man2/setresuid.2:69 build/C/man2/setreuid.2:94
208 #: build/C/man2/setsid.2:57 build/C/man2/setuid.2:73 build/C/man3/ulimit.3:74
214 #: build/C/man2/acct.2:66 build/C/man7/cpuset.7:1115
215 #: build/C/man7/cpuset.7:1122 build/C/man7/cpuset.7:1128
216 #: build/C/man7/cpuset.7:1136 build/C/man7/cpuset.7:1143
217 #: build/C/man2/getpriority.2:138 build/C/man2/setpgid.2:192
223 #: build/C/man2/acct.2:77
225 "Write permission is denied for the specified file, or search permission is "
226 "denied for one of the directories in the path prefix of I<filename> (see "
227 "also B<path_resolution>(7)), or I<filename> is not a regular file."
229 "指定したファイルへの書き込み許可がなく、書き込みが拒否された。 または "
230 "I<filename> のディレクトリ部分の何れかのディレクトリに検索許可がなく拒否され"
231 "た (B<path_resolution>(7) も参照すること)。 または I<filename> が通常 "
232 "(regular) のファイルでない。"
235 #: build/C/man2/acct.2:77 build/C/man2/capget.2:172 build/C/man7/cpuset.7:1171
236 #: build/C/man2/getgroups.2:107 build/C/man2/getresuid.2:55
237 #: build/C/man2/getrlimit.2:436 build/C/man2/getrusage.2:186
243 #: build/C/man2/acct.2:81
244 msgid "I<filename> points outside your accessible address space."
245 msgstr "アクセスできるアドレス空間の外を I<filename> が指している。"
248 #: build/C/man2/acct.2:81 build/C/man7/cpuset.7:1237
249 #: build/C/man7/cpuset.7:1245
255 #: build/C/man2/acct.2:85
256 msgid "Error writing to the file I<filename>."
257 msgstr "I<filename> への書き込みにエラーが発生した。"
260 #: build/C/man2/acct.2:85
266 #: build/C/man2/acct.2:89
267 msgid "I<filename> is a directory."
268 msgstr "I<filename> がディレクトリである。"
271 #: build/C/man2/acct.2:89
277 #: build/C/man2/acct.2:93
278 msgid "Too many symbolic links were encountered in resolving I<filename>."
279 msgstr "I<filename> の実体にたどり着くまでのシンボリックリンクの数が多すぎる。"
282 #: build/C/man2/acct.2:93 build/C/man7/cpuset.7:1250
283 #: build/C/man7/cpuset.7:1257 build/C/man7/cpuset.7:1262
285 msgid "B<ENAMETOOLONG>"
286 msgstr "B<ENAMETOOLONG>"
289 #: build/C/man2/acct.2:97
290 msgid "I<filename> was too long."
291 msgstr "I<filename> が長すぎる。"
294 #: build/C/man2/acct.2:97
300 #: build/C/man2/acct.2:100
301 msgid "The system limit on the total number of open files has been reached."
302 msgstr "オープンされたファイルの総数がシステム制限に達した。"
305 #: build/C/man2/acct.2:100 build/C/man7/cpuset.7:1274
306 #: build/C/man7/cpuset.7:1279
312 #: build/C/man2/acct.2:103
313 msgid "The specified filename does not exist."
314 msgstr "指定されたファイルが存在しない。"
317 #: build/C/man2/acct.2:103 build/C/man7/cpuset.7:1286
318 #: build/C/man2/getgroups.2:127
324 #: build/C/man2/acct.2:106 build/C/man2/getgroups.2:130
325 msgid "Out of memory."
329 #: build/C/man2/acct.2:106 build/C/man2/iopl.2:75
335 #: build/C/man2/acct.2:112
337 "BSD process accounting has not been enabled when the operating system kernel "
338 "was compiled. The kernel configuration parameter controlling this feature "
339 "is B<CONFIG_BSD_PROCESS_ACCT>."
341 "カーネルをコンパイルした時に BSD プロセス・アカウントが有効になっていない。 "
342 "この機能はカーネルのコンフィグの B<CONFIG_BSD_PROCESS_ACCT> パラメータによっ"
346 #: build/C/man2/acct.2:112 build/C/man7/cpuset.7:1313
352 #: build/C/man2/acct.2:117
354 "A component used as a directory in I<filename> is not in fact a directory."
356 "I<filename> の中でディレクトリして扱われている要素が、 実際はディレクトリでな"
360 #: build/C/man2/acct.2:117 build/C/man2/capget.2:183 build/C/man2/capget.2:188
361 #: build/C/man7/cpuset.7:1318 build/C/man2/getgroups.2:130
362 #: build/C/man2/getpriority.2:150 build/C/man2/getrlimit.2:452
363 #: build/C/man2/getsid.2:63 build/C/man2/iopl.2:78
364 #: build/C/man2/ioprio_set.2:169 build/C/man2/seteuid.2:73
365 #: build/C/man2/setgid.2:57 build/C/man2/setpgid.2:206
366 #: build/C/man2/setresuid.2:77 build/C/man2/setreuid.2:95
367 #: build/C/man2/setsid.2:58 build/C/man2/setuid.2:83 build/C/man3/ulimit.3:75
373 #: build/C/man2/acct.2:123
375 "The calling process has insufficient privilege to enable process "
376 "accounting. On Linux the B<CAP_SYS_PACCT> capability is required."
378 "呼び出したプロセスにはプロセス・アカウントを有効にするのに十分な特権がない。 "
379 "Linux では B<CAP_SYS_PACCT> ケーパビリティ (capability) が必要である。"
382 #: build/C/man2/acct.2:123
388 #: build/C/man2/acct.2:127
389 msgid "I<filename> refers to a file on a read-only file system."
391 "読み込みだけのファイルシステム上のファイルを I<filename> が参照している。"
394 #: build/C/man2/acct.2:127
400 #: build/C/man2/acct.2:130
401 msgid "There are no more free file structures or we ran out of memory."
402 msgstr "使用可能なファイル構造体がないか、メモリが足りない。"
405 #: build/C/man2/acct.2:130 build/C/man5/acct.5:152
406 #: build/C/man7/capabilities.7:890 build/C/man2/capget.2:210
407 #: build/C/man7/credentials.7:232 build/C/man2/getgid.2:44
408 #: build/C/man2/getgroups.2:133 build/C/man2/getpid.2:44
409 #: build/C/man2/getpriority.2:158 build/C/man2/getresuid.2:66
410 #: build/C/man2/getrlimit.2:473 build/C/man2/getrusage.2:194
411 #: build/C/man2/getsid.2:78 build/C/man2/getuid.2:45 build/C/man2/iopl.2:85
412 #: build/C/man2/ioprio_set.2:186 build/C/man2/ipc.2:46
413 #: build/C/man2/seteuid.2:89 build/C/man2/setfsgid.2:78
414 #: build/C/man2/setfsuid.2:78 build/C/man2/setgid.2:74
415 #: build/C/man2/setpgid.2:225 build/C/man2/setresuid.2:83
416 #: build/C/man2/setreuid.2:111 build/C/man2/setsid.2:64
417 #: build/C/man2/setuid.2:90 build/C/man3/ulimit.3:78
419 msgid "CONFORMING TO"
422 #. SVr4 documents an EBUSY error condition, but no EISDIR or ENOSYS.
423 #. Also AIX and HP-UX document EBUSY (attempt is made
424 #. to enable accounting when it is already enabled), as does Solaris
425 #. (attempt is made to enable accounting using the same file that is
426 #. currently being used).
428 #: build/C/man2/acct.2:137
429 msgid "SVr4, 4.3BSD (but not POSIX)."
430 msgstr "SVr4, 4.3BSD (POSIX ではない)。"
433 #: build/C/man2/acct.2:137 build/C/man5/acct.5:156
434 #: build/C/man7/capabilities.7:895 build/C/man2/capget.2:212
435 #: build/C/man7/cpuset.7:1340 build/C/man7/credentials.7:238
436 #: build/C/man2/getgid.2:46 build/C/man2/getgroups.2:141
437 #: build/C/man2/getpid.2:46 build/C/man2/getpriority.2:161
438 #: build/C/man2/getresuid.2:69 build/C/man2/getrlimit.2:496
439 #: build/C/man2/getrusage.2:205 build/C/man2/getsid.2:80
440 #: build/C/man2/getuid.2:47 build/C/man2/getuid.2:57 build/C/man2/iopl.2:89
441 #: build/C/man2/ioprio_set.2:188 build/C/man2/ipc.2:50
442 #: build/C/man2/seteuid.2:91 build/C/man2/setfsgid.2:82
443 #: build/C/man2/setfsuid.2:82 build/C/man2/setgid.2:64
444 #: build/C/man2/setpgid.2:247 build/C/man2/setresuid.2:86
445 #: build/C/man2/setreuid.2:117 build/C/man2/setsid.2:66
446 #: build/C/man2/setuid.2:95
452 #: build/C/man2/acct.2:140
454 "No accounting is produced for programs running when a system crash occurs. "
455 "In particular, nonterminating processes are never accounted for."
457 "システムがクラッシュした時に実行中だったプログラムのアカウントは生成されな"
458 "い。 特に、終了しないプログラムがアカウントされることはない。"
461 #: build/C/man2/acct.2:143
463 "The structure of the records written to the accounting file is described in "
466 "アカウント用ファイルに書き込まれるレコードの構造体については B<acct>(5) に説"
470 #: build/C/man2/acct.2:143 build/C/man5/acct.5:173
471 #: build/C/man7/capabilities.7:943 build/C/man2/capget.2:219
472 #: build/C/man7/cpuset.7:1487 build/C/man7/credentials.7:250
473 #: build/C/man2/getgid.2:62 build/C/man2/getgroups.2:171
474 #: build/C/man2/getpid.2:98 build/C/man2/getpriority.2:223
475 #: build/C/man2/getresuid.2:85 build/C/man2/getrlimit.2:620
476 #: build/C/man2/getrusage.2:245 build/C/man2/getsid.2:83
477 #: build/C/man2/getuid.2:73 build/C/man2/iopl.2:98
478 #: build/C/man2/ioprio_set.2:317 build/C/man2/ipc.2:58
479 #: build/C/man2/seteuid.2:117 build/C/man2/setfsgid.2:110
480 #: build/C/man2/setfsuid.2:110 build/C/man2/setgid.2:76
481 #: build/C/man2/setpgid.2:315 build/C/man2/setresuid.2:106
482 #: build/C/man2/setreuid.2:157 build/C/man2/setsid.2:83
483 #: build/C/man2/setuid.2:118 build/C/man7/svipc.7:320 build/C/man3/ulimit.3:83
489 #: build/C/man2/acct.2:145
494 #: build/C/man2/acct.2:145 build/C/man5/acct.5:178
495 #: build/C/man7/capabilities.7:962 build/C/man2/capget.2:223
496 #: build/C/man7/cpuset.7:1504 build/C/man7/credentials.7:281
497 #: build/C/man2/getgid.2:67 build/C/man2/getgroups.2:178
498 #: build/C/man2/getpid.2:108 build/C/man2/getpriority.2:231
499 #: build/C/man2/getresuid.2:91 build/C/man2/getrlimit.2:637
500 #: build/C/man2/getrusage.2:252 build/C/man2/getsid.2:87
501 #: build/C/man2/getuid.2:78 build/C/man2/iopl.2:101
502 #: build/C/man2/ioprio_set.2:323 build/C/man2/ipc.2:71
503 #: build/C/man2/seteuid.2:124 build/C/man2/setfsgid.2:115
504 #: build/C/man2/setfsuid.2:115 build/C/man2/setgid.2:82
505 #: build/C/man2/setpgid.2:322 build/C/man2/setresuid.2:115
506 #: build/C/man2/setreuid.2:165 build/C/man2/setsid.2:89
507 #: build/C/man2/setuid.2:125 build/C/man7/svipc.7:334 build/C/man3/ulimit.3:88
513 #: build/C/man2/acct.2:152 build/C/man5/acct.5:185
514 #: build/C/man7/capabilities.7:969 build/C/man2/capget.2:230
515 #: build/C/man7/cpuset.7:1511 build/C/man7/credentials.7:288
516 #: build/C/man2/getgid.2:74 build/C/man2/getgroups.2:185
517 #: build/C/man2/getpid.2:115 build/C/man2/getpriority.2:238
518 #: build/C/man2/getresuid.2:98 build/C/man2/getrlimit.2:644
519 #: build/C/man2/getrusage.2:259 build/C/man2/getsid.2:94
520 #: build/C/man2/getuid.2:85 build/C/man2/iopl.2:108
521 #: build/C/man2/ioprio_set.2:330 build/C/man2/ipc.2:78
522 #: build/C/man2/seteuid.2:131 build/C/man2/setfsgid.2:122
523 #: build/C/man2/setfsuid.2:122 build/C/man2/setgid.2:89
524 #: build/C/man2/setpgid.2:329 build/C/man2/setresuid.2:122
525 #: build/C/man2/setreuid.2:172 build/C/man2/setsid.2:96
526 #: build/C/man2/setuid.2:132 build/C/man7/svipc.7:341 build/C/man3/ulimit.3:95
528 "This page is part of release 3.35 of the Linux I<man-pages> project. A "
529 "description of the project, and information about reporting bugs, can be "
530 "found at http://man7.org/linux/man-pages/."
534 #: build/C/man5/acct.5:23
540 #: build/C/man5/acct.5:26
541 msgid "acct - process accounting file"
542 msgstr "acct - プロセス・アカウンティング・ファイル"
545 #: build/C/man5/acct.5:28
546 msgid "B<#include E<lt>sys/acct.hE<gt>>"
547 msgstr "B<#include E<lt>sys/acct.hE<gt>>"
550 #: build/C/man5/acct.5:34
552 "If the kernel is built with the process accounting option enabled "
553 "(B<CONFIG_BSD_PROCESS_ACCT>), then calling B<acct>(2) starts process "
554 "accounting, for example:"
556 "カーネルがプロセス・アカウンティングのオプション "
557 "(B<CONFIG_BSD_PROCESS_ACCT>) を有効にして作成されていると、以下のように "
558 "B<acct>(2) を呼び出すとプロセス・アカウンティングが開始される。"
561 #: build/C/man5/acct.5:37
562 msgid "acct(\"/var/log/pacct\");"
563 msgstr " acct(\"/var/log/pacct\");\n"
566 #: build/C/man5/acct.5:45
568 "When process accounting is enabled, the kernel writes a record to the "
569 "accounting file as each process on the system terminates. This record "
570 "contains information about the terminated process, and is defined in "
571 "I<E<lt>sys/acct.hE<gt>> as follows:"
573 "プロセス・アカウンティングが有効になっていると、カーネルは システム上の各プロ"
574 "セスが終了するたびにアカウンティングファイルに レコードを書き込む。 このレ"
575 "コードは、終了したプロセスに関する情報を保持するもので、 I<E<lt>sys/acct."
576 "hE<gt>> で以下のように定義されている。"
579 #: build/C/man5/acct.5:49
581 msgid "#define ACCT_COMM 16\n"
582 msgstr "#define ACCT_COMM 16\n"
585 #: build/C/man5/acct.5:51
587 msgid "typedef u_int16_t comp_t;\n"
588 msgstr "typedef u_int16_t comp_t;\n"
591 #: build/C/man5/acct.5:75
595 " char ac_flag; /* Accounting flags */\n"
596 " u_int16_t ac_uid; /* Accounting user ID */\n"
597 " u_int16_t ac_gid; /* Accounting group ID */\n"
598 " u_int16_t ac_tty; /* Controlling terminal */\n"
599 " u_int32_t ac_btime; /* Process creation time\n"
600 " (seconds since the Epoch) */\n"
601 " comp_t ac_utime; /* User CPU time */\n"
602 " comp_t ac_stime; /* System CPU time */\n"
603 " comp_t ac_etime; /* Elapsed time */\n"
604 " comp_t ac_mem; /* Average memory usage (kB) */\n"
605 " comp_t ac_io; /* Characters transferred (unused) */\n"
606 " comp_t ac_rw; /* Blocks read or written (unused) */\n"
607 " comp_t ac_minflt; /* Minor page faults */\n"
608 " comp_t ac_majflt; /* Major page faults */\n"
609 " comp_t ac_swaps; /* Number of swaps (unused) */\n"
610 " u_int32_t ac_exitcode; /* Process termination status\n"
611 " (see wait(2)) */\n"
612 " char ac_comm[ACCT_COMM+1];\n"
613 " /* Command name (basename of last\n"
614 " executed command; null-terminated) */\n"
615 " char ac_pad[I<X>]; /* padding bytes */\n"
619 " char ac_flag; /* Accounting flags */\n"
620 " u_int16_t ac_uid; /* Accounting user ID */\n"
621 " u_int16_t ac_gid; /* Accounting group ID */\n"
622 " u_int16_t ac_tty; /* Controlling terminal */\n"
623 " u_int32_t ac_btime; /* Process creation time\n"
624 " (seconds since the Epoch) */\n"
625 " comp_t ac_utime; /* User CPU time */\n"
626 " comp_t ac_stime; /* System CPU time */\n"
627 " comp_t ac_etime; /* Elapsed time */\n"
628 " comp_t ac_mem; /* Average memory usage (kB) */\n"
629 " comp_t ac_io; /* Characters transferred (unused) */\n"
630 " comp_t ac_rw; /* Blocks read or written (unused) */\n"
631 " comp_t ac_minflt; /* Minor page faults */\n"
632 " comp_t ac_majflt; /* Major page faults */\n"
633 " comp_t ac_swaps; /* Number of swaps (unused) */\n"
634 " u_int32_t ac_exitcode; /* Process termination status\n"
635 " (see wait(2)) */\n"
636 " char ac_comm[ACCT_COMM+1];\n"
637 " /* Command name (basename of last\n"
638 " executed command; null-terminated) */\n"
639 " char ac_pad[I<X>]; /* padding bytes */\n"
643 #: build/C/man5/acct.5:82
646 "enum { /* Bits that may be set in ac_flag field */\n"
647 " AFORK = 0x01, /* Has executed fork, but no exec */\n"
648 " ASU = 0x02, /* Used superuser privileges */\n"
649 " ACORE = 0x08, /* Dumped core */\n"
650 " AXSIG = 0x10 /* Killed by a signal */\n"
653 "enum { /* Bits that may be set in ac_flag field */\n"
654 " AFORK = 0x01, /* Has executed fork, but no exec */\n"
655 " ASU = 0x02, /* Used superuser privileges */\n"
656 " ACORE = 0x08, /* Dumped core */\n"
657 " AXSIG = 0x10 /* Killed by a signal */\n"
661 #: build/C/man5/acct.5:92
663 "The I<comp_t> data type is a floating-point value consisting of a 3-bit, "
664 "base-8 exponent, and a 13-bit mantissa. A value, I<c>, of this type can be "
665 "converted to a (long) integer as follows:"
667 "データ型 I<comp_t> は浮動小数点値で、3 ビット幅の基数が 8 の指数部と 13 ビッ"
668 "ト幅の仮数部から 構成される。 I<comp_t> 型の値 I<c> は以下のようにして (long "
672 #: build/C/man5/acct.5:95
674 msgid " v = (c & 0x1fff) E<lt>E<lt> (((c E<gt>E<gt> 13) & 0x7) * 3);\n"
675 msgstr " v = (c & 0x1fff) E<lt>E<lt> (((c E<gt>E<gt> 13) & 0x7) * 3);\n"
678 #: build/C/man5/acct.5:105
680 "The I<ac_utime>, I<ac_stime>, and I<ac_etime> fields measure time in \"clock "
681 "ticks\"; divide these values by I<sysconf(_SC_CLK_TCK)> to convert them to "
684 "フィールド I<ac_utime>, I<ac_stime>, I<ac_etime> は \"clock ticks\" 単位で計"
685 "測した時間である。 これらの値を I<sysconf(_SC_CLK_TCK)> で割ると、秒に変換で"
689 #: build/C/man5/acct.5:105
691 msgid "Version 3 Accounting File Format"
692 msgstr "バージョン 3 のアカウンティングファイルのフォーマット"
695 #: build/C/man5/acct.5:120
697 "Since kernel 2.6.8, an optional alternative version of the accounting file "
698 "can be produced if the B<CONFIG_BSD_PROCESS_ACCT_V3> option is set when "
699 "building the kernel. With this option is set, the records written to the "
700 "accounting file contain additional fields, and the width of I<c_uid> and "
701 "I<ac_gid> fields is widened from 16 to 32 bits (in line with the increased "
702 "size of UID and GIDs in Linux 2.4 and later). The records are defined as "
705 "カーネル 2.6.8 以降では、 別のバージョンのアカウンティングファイルを生成する"
706 "ことができ、 これを使うにはカーネル構築時に B<CONFIG_BSD_PROCESS_ACCT_V3> オ"
707 "プションが有効になっている必要がある。 このオプションが設定されると、アカウン"
708 "ティングファイルに書き込まれる レコードにフィールドが追加される。 また、"
709 "フィールド I<c_uid> と I<ac_gid> の幅が 16 ビットから 32 ビットに拡張される "
710 "(これは Linux 2.4 以降で UID と GID のサイズが増えているのに 対応したものであ"
711 "る)。 このレコードは以下のように定義されている。"
714 #: build/C/man5/acct.5:145
718 " char ac_flag; /* Flags */\n"
719 " char ac_version; /* Always set to ACCT_VERSION (3) */\n"
720 " u_int16_t ac_tty; /* Controlling terminal */\n"
721 " u_int32_t ac_exitcode; /* Process termination status */\n"
722 " u_int32_t ac_uid; /* Real user ID */\n"
723 " u_int32_t ac_gid; /* Real group ID */\n"
724 " u_int32_t ac_pid; /* Process ID */\n"
725 " u_int32_t ac_ppid; /* Parent process ID */\n"
726 " u_int32_t ac_btime; /* Process creation time */\n"
727 " float ac_etime; /* Elapsed time */\n"
728 " comp_t ac_utime; /* User CPU time */\n"
729 " comp_t ac_stime; /* System time */\n"
730 " comp_t ac_mem; /* Average memory usage (kB) */\n"
731 " comp_t ac_io; /* Characters transferred (unused) */\n"
732 " comp_t ac_rw; /* Blocks read or written\n"
734 " comp_t ac_minflt; /* Minor page faults */\n"
735 " comp_t ac_majflt; /* Major page faults */\n"
736 " comp_t ac_swaps; /* Number of swaps (unused) */\n"
737 " char ac_comm[ACCT_COMM]; /* Command name */\n"
741 " char ac_flag; /* Flags */\n"
742 " char ac_version; /* Always set to ACCT_VERSION (3) */\n"
743 " u_int16_t ac_tty; /* Controlling terminal */\n"
744 " u_int32_t ac_exitcode; /* Process termination status */\n"
745 " u_int32_t ac_uid; /* Real user ID */\n"
746 " u_int32_t ac_gid; /* Real group ID */\n"
747 " u_int32_t ac_pid; /* Process ID */\n"
748 " u_int32_t ac_ppid; /* Parent process ID */\n"
749 " u_int32_t ac_btime; /* Process creation time */\n"
750 " float ac_etime; /* Elapsed time */\n"
751 " comp_t ac_utime; /* User CPU time */\n"
752 " comp_t ac_stime; /* System time */\n"
753 " comp_t ac_mem; /* Average memory usage (kB) */\n"
754 " comp_t ac_io; /* Characters transferred (unused) */\n"
755 " comp_t ac_rw; /* Blocks read or written\n"
757 " comp_t ac_minflt; /* Minor page faults */\n"
758 " comp_t ac_majflt; /* Major page faults */\n"
759 " comp_t ac_swaps; /* Number of swaps (unused) */\n"
760 " char ac_comm[ACCT_COMM]; /* Command name */\n"
764 #: build/C/man5/acct.5:148 build/C/man7/cpuset.7:1337
765 #: build/C/man2/getresuid.2:59 build/C/man2/getrlimit.2:468
766 #: build/C/man2/getsid.2:74 build/C/man2/ioprio_set.2:183
767 #: build/C/man2/setfsgid.2:74 build/C/man2/setfsuid.2:74
768 #: build/C/man2/setresuid.2:81
774 #: build/C/man5/acct.5:152
775 msgid "The I<acct_v3> structure is defined in glibc since version 2.6."
776 msgstr "I<acct_v3> 構造体はバージョン 2.6 以降の glibc で定義されている。"
779 #: build/C/man5/acct.5:156
781 "Process accounting originated on BSD. Although it is present on most "
782 "systems, it is not standardized, and the details vary somewhat between "
785 "プロセスアカウンティングは BSD 由来である。 この機能はほとんどのシステムに存"
786 "在するが、標準化されておらず、 その詳細はシステムによりいくらか異なる。"
789 #: build/C/man5/acct.5:159
791 "Records in the accounting file are ordered by termination time of the "
793 msgstr "アカウンティングファイルのレコードは、プロセスの終了時刻の順序となる。"
796 #: build/C/man5/acct.5:166
798 "In kernels up to and including 2.6.9, a separate accounting record is "
799 "written for each thread created using the NPTL threading library; since "
800 "Linux 2.6.10, a single accounting record is written for the entire process "
801 "on termination of the last thread in the process."
803 "バージョン 2.6.9 以前のカーネルでは、 NPTL スレッドライブラリを使って作成され"
804 "たスレッドでは スレッド毎に別々のアカウンティングレコードが書き込まれてい"
805 "た。 Linux 2.6.10 以降では、プロセス内の最後のスレッドが終了すると、 プロセス"
806 "全体についてのアカウンティングレコードが一つだけ書き込まれる。"
809 #: build/C/man5/acct.5:173
811 "The I<proc/sys/kernel/acct> file, described in B<proc>(5), defines settings "
812 "that control the behavior of process accounting when disk space runs low."
814 "I<proc/sys/kernel/acct> ファイル (B<proc>(5) で説明されている) は、ディスク"
815 "容量の残りが少なくなった際の プロセス・アカウンティングの動作を制御する設定を"
819 #: build/C/man5/acct.5:178
820 msgid "B<lastcomm>(1), B<acct>(2), B<accton>(8), B<sa>(8)"
821 msgstr "B<lastcomm>(1), B<acct>(2), B<accton>(8), B<sa>(8)"
824 #: build/C/man7/capabilities.7:47
827 msgstr "CAPABILITIES"
830 #: build/C/man7/capabilities.7:47
832 #| msgid "2010-09-20"
837 #: build/C/man7/capabilities.7:50
838 msgid "capabilities - overview of Linux capabilities"
839 msgstr "capabilities - Linux のケーパビリティ (capability) の概要"
842 #: build/C/man7/capabilities.7:62
844 "For the purpose of performing permission checks, traditional UNIX "
845 "implementations distinguish two categories of processes: I<privileged> "
846 "processes (whose effective user ID is 0, referred to as superuser or root), "
847 "and I<unprivileged> processes (whose effective UID is nonzero). Privileged "
848 "processes bypass all kernel permission checks, while unprivileged processes "
849 "are subject to full permission checking based on the process's credentials "
850 "(usually: effective UID, effective GID, and supplementary group list)."
852 "権限のチェックを行う観点から見ると、伝統的な UNIX の実装では プロセスは二つの"
853 "カテゴリに分類できる: I<特権> プロセス (実効ユーザID が 0 のプロセス。ユーザ"
854 "ID 0 は スーパーユーザや root と呼ばれる) と I<非特権> プロセス (実効ユーザ"
855 "ID が 0 以外のプロセス) である。 非特権プロセスでは、プロセスの資格情報 (通常"
856 "は、実効UID 、実効GID と追加のグループリスト) に基づく権限チェックが行われる"
857 "のに対し、 特権プロセスでは全てのカーネルの権限チェックがバイパスされる。"
860 #: build/C/man7/capabilities.7:69
862 "Starting with kernel 2.2, Linux divides the privileges traditionally "
863 "associated with superuser into distinct units, known as I<capabilities>, "
864 "which can be independently enabled and disabled. Capabilities are a per-"
867 "バージョン 2.2 以降の Linux では、 これまでスーパーユーザに結び付けられてきた"
868 "権限を、 いくつかのグループに分割している。これらのグループは I<ケーパビリ"
869 "ティ>(capability) と呼ばれ、グループ毎に独立に有効、無効を設定できる。 ケー"
870 "パビリティはスレッド単位の属性である。"
873 #: build/C/man7/capabilities.7:69
875 msgid "Capabilities List"
879 #: build/C/man7/capabilities.7:72
881 "The following list shows the capabilities implemented on Linux, and the "
882 "operations or behaviors that each capability permits:"
884 "以下のリストは、 Linux で実装されているケーパビリティと 各ケーパビリティが許"
885 "可する操作と動作をまとめたものである。"
888 #: build/C/man7/capabilities.7:72
890 msgid "B<CAP_AUDIT_CONTROL> (since Linux 2.6.11)"
891 msgstr "B<CAP_AUDIT_CONTROL> (Linux 2.6.11 以降)"
894 #: build/C/man7/capabilities.7:76
896 "Enable and disable kernel auditing; change auditing filter rules; retrieve "
897 "auditing status and filtering rules."
899 "カーネル監査 (audit) の有効無効の切り替え、 監査のフィルタ・ルールの変更、 監"
900 "査の状況やフィルタ・ルールの取得ができる。"
903 #: build/C/man7/capabilities.7:76
905 msgid "B<CAP_AUDIT_WRITE> (since Linux 2.6.11)"
906 msgstr "B<CAP_AUDIT_WRITE> (Linux 2.6.11 以降)"
909 #: build/C/man7/capabilities.7:79
910 msgid "Write records to kernel auditing log."
911 msgstr "カーネル監査のログにレコードを書き込む。"
914 #: build/C/man7/capabilities.7:79
917 msgstr "B<CAP_CHOWN>"
920 #: build/C/man7/capabilities.7:83
921 msgid "Make arbitrary changes to file UIDs and GIDs (see B<chown>(2))."
922 msgstr "ファイルの UID とGID を任意に変更する (B<chown>(2) 参照)。"
925 #: build/C/man7/capabilities.7:83
927 msgid "B<CAP_DAC_OVERRIDE>"
928 msgstr "B<CAP_DAC_OVERRIDE>"
931 #: build/C/man7/capabilities.7:87
933 "Bypass file read, write, and execute permission checks. (DAC is an "
934 "abbreviation of \"discretionary access control\".)"
936 "ファイルの読み出し、書き込み、実行の権限チェックをバイパスする (DAC は "
937 "\"discretionary access control (任意のアクセス制御)\" の略である)。"
940 #: build/C/man7/capabilities.7:87
942 msgid "B<CAP_DAC_READ_SEARCH>"
943 msgstr "B<CAP_DAC_READ_SEARCH>"
946 #: build/C/man7/capabilities.7:91
948 "Bypass file read permission checks and directory read and execute permission "
951 "ファイルの読み出し権限のチェックとディレクトリの読み出しと実行 の権限チェック"
955 #: build/C/man7/capabilities.7:91
957 msgid "B<CAP_FOWNER>"
958 msgstr "B<CAP_FOWNER>"
961 #: build/C/man7/capabilities.7:95 build/C/man7/capabilities.7:105
962 #: build/C/man7/capabilities.7:109 build/C/man7/capabilities.7:111
963 #: build/C/man7/capabilities.7:113 build/C/man7/capabilities.7:234
964 #: build/C/man7/capabilities.7:244 build/C/man7/capabilities.7:250
965 #: build/C/man7/capabilities.7:256 build/C/man7/capabilities.7:263
966 #: build/C/man7/capabilities.7:266 build/C/man7/capabilities.7:274
967 #: build/C/man7/capabilities.7:276 build/C/man7/capabilities.7:285
968 #: build/C/man7/capabilities.7:292 build/C/man7/capabilities.7:295
969 #: build/C/man7/capabilities.7:302 build/C/man7/capabilities.7:332
970 #: build/C/man7/capabilities.7:337 build/C/man7/capabilities.7:342
971 #: build/C/man7/capabilities.7:345 build/C/man7/capabilities.7:348
972 #: build/C/man7/capabilities.7:357 build/C/man7/capabilities.7:361
973 #: build/C/man7/capabilities.7:393 build/C/man7/capabilities.7:395
974 #: build/C/man7/capabilities.7:399 build/C/man7/capabilities.7:401
975 #: build/C/man7/capabilities.7:404 build/C/man7/capabilities.7:408
976 #: build/C/man7/capabilities.7:417 build/C/man7/capabilities.7:617
977 #: build/C/man7/capabilities.7:625 build/C/man7/capabilities.7:932
978 #: build/C/man7/capabilities.7:937 build/C/man7/cpuset.7:539
979 #: build/C/man7/cpuset.7:544 build/C/man7/cpuset.7:549
980 #: build/C/man7/cpuset.7:725 build/C/man7/cpuset.7:729
981 #: build/C/man7/cpuset.7:926 build/C/man7/cpuset.7:929
982 #: build/C/man7/cpuset.7:933 build/C/man7/cpuset.7:937
983 #: build/C/man7/cpuset.7:941 build/C/man7/credentials.7:123
984 #: build/C/man7/credentials.7:129 build/C/man7/credentials.7:141
985 #: build/C/man7/credentials.7:163 build/C/man7/credentials.7:180
986 #: build/C/man7/credentials.7:212 build/C/man7/credentials.7:215
987 #: build/C/man7/credentials.7:225 build/C/man7/credentials.7:228
993 #: build/C/man7/capabilities.7:105
995 "Bypass permission checks on operations that normally require the file system "
996 "UID of the process to match the UID of the file (e.g., B<chmod>(2), B<utime>"
997 "(2)), excluding those operations covered by B<CAP_DAC_OVERRIDE> and "
998 "B<CAP_DAC_READ_SEARCH>;"
1000 "通常、プロセスのファイルシステム UID がファイルの UID に一致することが 要求さ"
1001 "れる操作 (例えば B<chmod>(2), B<utime>(2)) における権限チェックをバイパスす"
1002 "る。 但し、 B<CAP_DAC_OVERRIDE> か B<CAP_DAC_READ_SEARCH> によりチェックが行"
1006 #: build/C/man7/capabilities.7:109
1007 msgid "set extended file attributes (see B<chattr>(1)) on arbitrary files;"
1009 "任意のファイルに対して拡張ファイル属性を設定する (B<chattr>(1) 参照)。"
1012 #: build/C/man7/capabilities.7:111
1013 msgid "set Access Control Lists (ACLs) on arbitrary files;"
1014 msgstr "任意のファイルに対してアクセス制御リスト (ACL) を設定する。"
1017 #: build/C/man7/capabilities.7:113
1018 msgid "ignore directory sticky bit on file deletion;"
1019 msgstr "ファイルの削除の際にディレクトリのスティッキービットを無視する。"
1022 #: build/C/man7/capabilities.7:120
1024 "specify B<O_NOATIME> for arbitrary files in B<open>(2) and B<fcntl>(2)."
1026 "B<open>(2) や B<fcntl>(2) で任意のファイルに対して B<O_NOATIME> を指定す"
1030 #: build/C/man7/capabilities.7:122
1032 msgid "B<CAP_FSETID>"
1033 msgstr "B<CAP_FSETID>"
1036 #: build/C/man7/capabilities.7:128
1038 "Don't clear set-user-ID and set-group-ID permission bits when a file is "
1039 "modified; set the set-group-ID bit for a file whose GID does not match the "
1040 "file system or any of the supplementary GIDs of the calling process."
1042 "ファイルが変更されたときに set-user-ID とset-group-ID の許可ビットをクリア し"
1043 "ない。呼び出し元プロセスのファイルシステム GID と追加の GID のいずれとも GID "
1044 "が一致しないファイルに対して set-group-ID ビットを設定する。"
1047 #: build/C/man7/capabilities.7:128
1049 msgid "B<CAP_IPC_LOCK>"
1050 msgstr "B<CAP_IPC_LOCK>"
1053 #: build/C/man7/capabilities.7:135
1054 msgid "Lock memory (B<mlock>(2), B<mlockall>(2), B<mmap>(2), B<shmctl>(2))."
1056 "メモリーのロック (B<mlock>(2), B<mlockall>(2), B<mmap>(2), B<shmctl>(2)) を"
1060 #: build/C/man7/capabilities.7:135
1062 msgid "B<CAP_IPC_OWNER>"
1063 msgstr "B<CAP_IPC_OWNER>"
1066 #: build/C/man7/capabilities.7:138
1067 msgid "Bypass permission checks for operations on System V IPC objects."
1069 "System V IPC オブジェクトに対する操作に関して権限チェックをバイパスする。"
1072 #: build/C/man7/capabilities.7:138
1075 msgstr "B<CAP_KILL>"
1077 #. FIXME CAP_KILL also has an effect for threads + setting child
1078 #. termination signal to other than SIGCHLD: without this
1079 #. capability, the termination signal reverts to SIGCHLD
1080 #. if the child does an exec(). What is the rationale
1083 #: build/C/man7/capabilities.7:151
1085 "Bypass permission checks for sending signals (see B<kill>(2)). This "
1086 "includes use of the B<ioctl>(2) B<KDSIGACCEPT> operation."
1088 "シグナルを送信する際に権限チェックをバイパスする (B<kill>(2) 参照)。これに"
1089 "は B<ioctl>(2) の B<KDSIGACCEPT> 操作の使用も含まれる。"
1092 #: build/C/man7/capabilities.7:151
1094 msgid "B<CAP_LEASE> (since Linux 2.4)"
1095 msgstr "B<CAP_LEASE> (Linux 2.4 以降)"
1098 #: build/C/man7/capabilities.7:155
1099 msgid "Establish leases on arbitrary files (see B<fcntl>(2))."
1100 msgstr "任意のファイルに対して ファイルリースを設定する (B<fcntl>(2) 参照)。"
1103 #: build/C/man7/capabilities.7:155
1105 msgid "B<CAP_LINUX_IMMUTABLE>"
1106 msgstr "B<CAP_LINUX_IMMUTABLE>"
1108 #. These attributes are now available on ext2, ext3, Reiserfs, XFS, JFS
1110 #: build/C/man7/capabilities.7:164
1112 "Set the B<FS_APPEND_FL> and B<FS_IMMUTABLE_FL> i-node flags (see B<chattr>"
1115 "拡張ファイル属性 B<FS_APPEND_FL> と B<FS_IMMUTABLE_FL> を設定する (B<chattr>"
1119 #: build/C/man7/capabilities.7:164
1121 msgid "B<CAP_MAC_ADMIN> (since Linux 2.6.25)"
1122 msgstr "B<CAP_MAC_ADMIN> (Linux 2.6.25 以降)"
1125 #: build/C/man7/capabilities.7:168
1127 "Override Mandatory Access Control (MAC). Implemented for the Smack Linux "
1128 "Security Module (LSM)."
1130 "強制アクセス制御 (MAC) を上書きする。 Smack Linux Security Module (LSM) 用に"
1134 #: build/C/man7/capabilities.7:168
1136 msgid "B<CAP_MAC_OVERRIDE> (since Linux 2.6.25)"
1137 msgstr "B<CAP_MAC_OVERRIDE> (Linux 2.6.25 以降)"
1140 #: build/C/man7/capabilities.7:172
1142 "Allow MAC configuration or state changes. Implemented for the Smack LSM."
1143 msgstr "MAC の設定や状態を変更する。 Smack LSM 用に実装されている。"
1146 #: build/C/man7/capabilities.7:172
1148 msgid "B<CAP_MKNOD> (since Linux 2.4)"
1149 msgstr "B<CAP_MKNOD> (Linux 2.4 以降)"
1152 #: build/C/man7/capabilities.7:176
1153 msgid "Create special files using B<mknod>(2)."
1155 "(Linux 2.4 以降) B<mknod>(2) を使用してスペシャル・ファイルを作成する。"
1158 #: build/C/man7/capabilities.7:176
1160 msgid "B<CAP_NET_ADMIN>"
1161 msgstr "B<CAP_NET_ADMIN>"
1164 #: build/C/man7/capabilities.7:182
1166 "Perform various network-related operations (e.g., setting privileged socket "
1167 "options, enabling multicasting, interface configuration, modifying routing "
1170 "各種のネットワーク関連の操作を実行する。 (例えば、特権が必要なソケットオプ"
1171 "ションを設定する、マルチキャストを有効にする、 インターフェースを設定する、"
1172 "ルーティングテーブルを変更するなど)"
1175 #: build/C/man7/capabilities.7:182
1177 msgid "B<CAP_NET_BIND_SERVICE>"
1178 msgstr "B<CAP_NET_BIND_SERVICE>"
1181 #: build/C/man7/capabilities.7:186
1183 "Bind a socket to Internet domain privileged ports (port numbers less than "
1186 "インターネットドメインの特権ポート (ポート番号が 1024 番未満) をバインドでき"
1190 #: build/C/man7/capabilities.7:186
1192 msgid "B<CAP_NET_BROADCAST>"
1193 msgstr "B<CAP_NET_BROADCAST>"
1196 #: build/C/man7/capabilities.7:189
1197 msgid "(Unused) Make socket broadcasts, and listen to multicasts."
1199 "(未使用) ソケットのブロードキャストと、マルチキャストの待ち受けを行う。"
1202 #: build/C/man7/capabilities.7:189
1204 msgid "B<CAP_NET_RAW>"
1205 msgstr "B<CAP_NET_RAW>"
1207 #. Also various IP options and setsockopt(SO_BINDTODEVICE)
1209 #: build/C/man7/capabilities.7:193
1210 msgid "Use RAW and PACKET sockets."
1211 msgstr "RAW ソケットと PACKET ソケットを使用する。"
1214 #: build/C/man7/capabilities.7:193
1216 msgid "B<CAP_SETGID>"
1217 msgstr "B<CAP_SETGID>"
1220 #: build/C/man7/capabilities.7:197
1222 "Make arbitrary manipulations of process GIDs and supplementary GID list; "
1223 "forge GID when passing socket credentials via UNIX domain sockets."
1225 "プロセスの GID と追加の GID リストに対する任意の操作を行う。 UNIX ドメインソ"
1226 "ケット経由でソケットの資格情報 (credential) を渡す際に 偽の GID を渡すことが"
1230 #: build/C/man7/capabilities.7:197
1232 msgid "B<CAP_SETFCAP> (since Linux 2.6.24)"
1233 msgstr "B<CAP_SETFCAP> (Linux 2.6.24 以降)"
1236 #: build/C/man7/capabilities.7:200
1237 msgid "Set file capabilities."
1238 msgstr "ファイルケーパビリティを設定する。"
1241 #: build/C/man7/capabilities.7:200
1243 msgid "B<CAP_SETPCAP>"
1244 msgstr "B<CAP_SETPCAP>"
1247 #: build/C/man7/capabilities.7:211
1249 "If file capabilities are not supported: grant or remove any capability in "
1250 "the caller's permitted capability set to or from any other process. (This "
1251 "property of B<CAP_SETPCAP> is not available when the kernel is configured to "
1252 "support file capabilities, since B<CAP_SETPCAP> has entirely different "
1253 "semantics for such kernels.)"
1255 "ファイルケーパビリティがサポートされていない場合: 呼び出し元が許可されている"
1256 "ケーパビリティセットに含まれる任意のケーパビリティを、 他のプロセスに付与した"
1257 "り、削除したりできる。 (カーネルがファイルケーパビリティをサポートしている場"
1258 "合、 B<CAP_SETPCAP> はこの役割を持たない。 なぜなら、ファイルケーパビリティを"
1259 "サポートしているカーネルでは B<CAP_SETPCAP> は全く別の意味を持つからである。)"
1262 #: build/C/man7/capabilities.7:221
1264 "If file capabilities are supported: add any capability from the calling "
1265 "thread's bounding set to its inheritable set; drop capabilities from the "
1266 "bounding set (via B<prctl>(2) B<PR_CAPBSET_DROP>); make changes to the "
1267 "I<securebits> flags."
1269 "ファイルケーパビリティがサポートされている場合: 呼び出し元スレッドのバウン"
1270 "ディングセットの任意のケーパビリティを 自身の継承可能ケーパビリティセットに追"
1271 "加できる。 (B<prctl>(2) B<PR_CAPBSET_DROP> を使って) バウンディングセットか"
1272 "らケーパビリティを削除できる。 I<securebits> フラグを変更できる。"
1275 #: build/C/man7/capabilities.7:221
1277 msgid "B<CAP_SETUID>"
1278 msgstr "B<CAP_SETUID>"
1280 #. FIXME CAP_SETUID also an effect in exec(); document this.
1282 #: build/C/man7/capabilities.7:230
1284 "Make arbitrary manipulations of process UIDs (B<setuid>(2), B<setreuid>(2), "
1285 "B<setresuid>(2), B<setfsuid>(2)); make forged UID when passing socket "
1286 "credentials via UNIX domain sockets."
1288 "プロセスの UID に対する任意の操作 (B<setuid>(2), B<setreuid>(2), B<setresuid>"
1289 "(2), B<setfsuid>(2)) を行う。 UNIX ドメインソケット経由でソケットの資格情報 "
1290 "(credential) を渡す際に 偽の UID を渡すことができる。"
1293 #: build/C/man7/capabilities.7:230
1295 msgid "B<CAP_SYS_ADMIN>"
1296 msgstr "B<CAP_SYS_ADMIN>"
1299 #: build/C/man7/capabilities.7:244
1301 "Perform a range of system administration operations including: B<quotactl>"
1302 "(2), B<mount>(2), B<umount>(2), B<swapon>(2), B<swapoff>(2), B<sethostname>"
1303 "(2), and B<setdomainname>(2);"
1305 "以下のシステム管理用の操作を実行する: B<quotactl>(2), B<mount>(2), B<umount>"
1306 "(2), B<swapon>(2), B<swapoff>(2), B<sethostname>(2), B<setdomainname>(2)."
1309 #: build/C/man7/capabilities.7:250
1311 "perform privileged B<syslog>(2) operations (since Linux 2.6.37, "
1312 "B<CAP_SYSLOG> should be used to permit such operations);"
1316 #: build/C/man7/capabilities.7:256
1318 "perform B<IPC_SET> and B<IPC_RMID> operations on arbitrary System V IPC "
1321 "任意の System V IPC オブジェクトに対する B<IPC_SET> と B<IPC_RMID> 操作を実行"
1325 #: build/C/man7/capabilities.7:263
1327 "perform operations on I<trusted> and I<security> Extended Attributes (see "
1330 "拡張属性 I<trusted> と I<security> に対する操作を実行する (B<attr>(5) 参"
1334 #: build/C/man7/capabilities.7:266
1335 msgid "use B<lookup_dcookie>(2);"
1336 msgstr "B<lookup_dcookie>(2) を呼び出す。"
1339 #: build/C/man7/capabilities.7:274
1341 "use B<ioprio_set>(2) to assign B<IOPRIO_CLASS_RT> and (before Linux "
1342 "2.6.25) B<IOPRIO_CLASS_IDLE> I/O scheduling classes;"
1344 "B<ioprio_set>(2) を使って I/O スケジューリングクラス B<IOPRIO_CLASS_RT>, "
1345 "B<IOPRIO_CLASS_IDLE> を割り当てる (B<IOPRIO_CLASS_IDLE> は Linux 2.6.25 より"
1349 #: build/C/man7/capabilities.7:276
1350 msgid "forge UID when passing socket credentials;"
1351 msgstr "ソケットの資格情報 (credential) を渡す際に偽の UID を渡す。"
1354 #: build/C/man7/capabilities.7:285
1356 "exceed I</proc/sys/fs/file-max>, the system-wide limit on the number of open "
1357 "files, in system calls that open files (e.g., B<accept>(2), B<execve>(2), "
1358 "B<open>(2), B<pipe>(2));"
1360 "ファイルをオープンするシステムコール (例えば B<accept>(2), B<execve>(2), "
1361 "B<open>(2), B<pipe>(2)) でシステム全体でオープンできるファイル数の上限 I</"
1362 "proc/sys/fs/file-max> を超過する。"
1365 #: build/C/man7/capabilities.7:292
1366 msgid "employ B<CLONE_NEWNS> flag with B<clone>(2) and B<unshare>(2);"
1367 msgstr "B<clone>(2) と B<unshare>(2) で B<CLONE_NEWNS> フラグを利用する。"
1370 #: build/C/man7/capabilities.7:295
1371 msgid "call B<setns>(2);"
1375 #: build/C/man7/capabilities.7:302
1376 msgid "perform B<KEYCTL_CHOWN> and B<KEYCTL_SETPERM> B<keyctl>(2) operations;"
1377 msgstr "B<keyctl>(2) の B<KEYCTL_CHOWN> と B<KEYCTL_SETPERM> 操作を実行する。"
1380 #: build/C/man7/capabilities.7:307
1381 msgid "perform B<madvise>(2) B<MADV_HWPOISON> operation."
1382 msgstr "B<madvise>(2) の B<MADV_HWPOISON> 操作を実行する。"
1385 #: build/C/man7/capabilities.7:309
1387 msgid "B<CAP_SYS_BOOT>"
1388 msgstr "B<CAP_SYS_BOOT>"
1391 #: build/C/man7/capabilities.7:315
1392 msgid "Use B<reboot>(2) and B<kexec_load>(2)."
1393 msgstr "B<reboot>(2) と B<kexec_load>(2) を呼び出す。"
1396 #: build/C/man7/capabilities.7:315
1398 msgid "B<CAP_SYS_CHROOT>"
1399 msgstr "B<CAP_SYS_CHROOT>"
1402 #: build/C/man7/capabilities.7:319
1403 msgid "Use B<chroot>(2)."
1404 msgstr "B<chroot>(2). を呼び出す。"
1407 #: build/C/man7/capabilities.7:319
1409 msgid "B<CAP_SYS_MODULE>"
1410 msgstr "B<CAP_SYS_MODULE>"
1413 #: build/C/man7/capabilities.7:328
1415 "Load and unload kernel modules (see B<init_module>(2) and B<delete_module>"
1416 "(2)); in kernels before 2.6.25: drop capabilities from the system-wide "
1417 "capability bounding set."
1419 "カーネルモジュールのロード、アンロードを行う (B<init_module>(2) と "
1420 "B<delete_module>(2) を参照のこと)。 バージョン 2.6.25 より前のカーネルで、 "
1421 "システム全体のケーパビリティバウンディングセット (capability bounding set) "
1425 #: build/C/man7/capabilities.7:328
1427 msgid "B<CAP_SYS_NICE>"
1428 msgstr "B<CAP_SYS_NICE>"
1431 #: build/C/man7/capabilities.7:337
1433 "Raise process nice value (B<nice>(2), B<setpriority>(2)) and change the "
1434 "nice value for arbitrary processes;"
1436 "プロセスの nice 値の引き上げ (B<nice>(2), B<setpriority>(2)) や、任意のプロ"
1440 #: build/C/man7/capabilities.7:342
1442 "set real-time scheduling policies for calling process, and set scheduling "
1443 "policies and priorities for arbitrary processes (B<sched_setscheduler>(2), "
1444 "B<sched_setparam>(2));"
1446 "呼び出し元プロセスに対するリアルタイム・スケジューリングポリシーと、 任意のプ"
1447 "ロセスに対するスケジューリングポリシーと優先度を設定する "
1448 "(B<sched_setscheduler>(2), B<sched_setparam>(2))。"
1451 #: build/C/man7/capabilities.7:345
1452 msgid "set CPU affinity for arbitrary processes (B<sched_setaffinity>(2));"
1454 "任意のプロセスに対する CPU affinity を設定できる (B<sched_setaffinity>(2))。"
1457 #: build/C/man7/capabilities.7:348
1459 "set I/O scheduling class and priority for arbitrary processes (B<ioprio_set>"
1462 "任意のプロセスに対して I/O スケジューリングクラスと優先度を設定できる "
1463 "(B<ioprio_set>(2))。"
1465 #. FIXME CAP_SYS_NICE also has the following effect for
1466 #. migrate_pages(2):
1467 #. do_migrate_pages(mm, &old, &new,
1468 #. capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
1470 #: build/C/man7/capabilities.7:357
1472 "apply B<migrate_pages>(2) to arbitrary processes and allow processes to be "
1473 "migrated to arbitrary nodes;"
1475 "B<migrate_pages>(2) を任意のプロセスに適用し、プロセスを任意のノードに移動す"
1479 #: build/C/man7/capabilities.7:361
1480 msgid "apply B<move_pages>(2) to arbitrary processes;"
1481 msgstr "B<move_pages>(2) を任意のプロセスに対して行う。"
1484 #: build/C/man7/capabilities.7:368
1486 "use the B<MPOL_MF_MOVE_ALL> flag with B<mbind>(2) and B<move_pages>(2)."
1488 "B<mbind>(2) と B<move_pages>(2) で B<MPOL_MF_MOVE_ALL> フラグを使用する。"
1491 #: build/C/man7/capabilities.7:370
1493 msgid "B<CAP_SYS_PACCT>"
1494 msgstr "B<CAP_SYS_PACCT>"
1497 #: build/C/man7/capabilities.7:374
1498 msgid "Use B<acct>(2)."
1499 msgstr "B<acct>(2) を呼び出す。"
1502 #: build/C/man7/capabilities.7:374
1504 msgid "B<CAP_SYS_PTRACE>"
1505 msgstr "B<CAP_SYS_PTRACE>"
1508 #: build/C/man7/capabilities.7:381
1510 "Trace arbitrary processes using B<ptrace>(2); apply B<get_robust_list>(2) "
1511 "to arbitrary processes."
1513 "B<ptrace>(2) を使って任意のプロセスをトレースする。 任意のプロセスに "
1514 "B<get_robust_list>(2) を適用する。"
1517 #: build/C/man7/capabilities.7:381
1519 msgid "B<CAP_SYS_RAWIO>"
1520 msgstr "B<CAP_SYS_RAWIO>"
1523 #: build/C/man7/capabilities.7:389
1525 "Perform I/O port operations (B<iopl>(2) and B<ioperm>(2)); access I</proc/"
1528 "I/O ポート操作を実行する (B<iopl>(2) 、 B<ioperm>(2))。 I</proc/kcore> にア"
1532 #: build/C/man7/capabilities.7:389
1534 msgid "B<CAP_SYS_RESOURCE>"
1535 msgstr "B<CAP_SYS_RESOURCE>"
1538 #: build/C/man7/capabilities.7:395
1539 msgid "Use reserved space on ext2 file systems;"
1540 msgstr "ext2 ファイルシステム上の予約されている領域を使用する。"
1543 #: build/C/man7/capabilities.7:399
1544 msgid "make B<ioctl>(2) calls controlling ext3 journaling;"
1545 msgstr "ext3 のジャーナル機能を制御する B<ioctl>(2) を使用する。"
1548 #: build/C/man7/capabilities.7:401
1549 msgid "override disk quota limits;"
1550 msgstr "ディスク quota の上限を上書きする。"
1553 #: build/C/man7/capabilities.7:404
1554 msgid "increase resource limits (see B<setrlimit>(2));"
1555 msgstr "リソース上限を増やす (B<setrlimit>(2))。"
1558 #: build/C/man7/capabilities.7:408
1559 msgid "override B<RLIMIT_NPROC> resource limit;"
1560 msgstr "B<RLIMIT_NPROC> リソース制限を上書きする。"
1563 #: build/C/man7/capabilities.7:417
1565 "raise I<msg_qbytes> limit for a System V message queue above the limit in I</"
1566 "proc/sys/kernel/msgmnb> (see B<msgop>(2) and B<msgctl>(2))."
1568 "メッセージキューに関する上限 I<msg_qbytes> を I</proc/sys/kernel/msgmnb> に指"
1569 "定されている上限よりも大きく設定する (B<msgop>(2) と B<msgctl>(2) 参照)。"
1572 #: build/C/man7/capabilities.7:422
1574 "use B<F_SETPIPE_SZ> to increase the capacity of a pipe above the limit "
1575 "specified by I</proc/sys/fs/pipe-max-size>."
1577 "I</proc/sys/fs/pipe-max-size> に指定されている上限を超えてパイプの容量を増や"
1578 "すのに B<F_SETPIPE_SZ> を使用する。"
1581 #: build/C/man7/capabilities.7:424
1583 msgid "B<CAP_SYS_TIME>"
1584 msgstr "B<CAP_SYS_TIME>"
1587 #: build/C/man7/capabilities.7:431
1589 "Set system clock (B<settimeofday>(2), B<stime>(2), B<adjtimex>(2)); set real-"
1590 "time (hardware) clock."
1592 "システムクロックを変更する (B<settimeofday>(2), B<stime>(2), B<adjtimex>"
1593 "(2))。 リアルタイム (ハードウェア) クロックを変更する。"
1596 #: build/C/man7/capabilities.7:431
1598 msgid "B<CAP_SYS_TTY_CONFIG>"
1599 msgstr "B<CAP_SYS_TTY_CONFIG>"
1602 #: build/C/man7/capabilities.7:435
1603 msgid "Use B<vhangup>(2)."
1604 msgstr "B<vhangup>(2) を呼び出す。"
1607 #: build/C/man7/capabilities.7:435
1609 #| msgid "B<CAP_SETFCAP> (since Linux 2.6.24)"
1610 msgid "B<CAP_SYSLOG> (since Linux 2.6.37)"
1611 msgstr "B<CAP_SETFCAP> (Linux 2.6.24 以降)"
1614 #: build/C/man7/capabilities.7:444
1616 "Perform privileged B<syslog>(2) operations. See B<syslog>(2) for "
1617 "information on which operations require privilege."
1621 #: build/C/man7/capabilities.7:444
1623 msgid "Past and Current Implementation"
1627 #: build/C/man7/capabilities.7:446
1628 msgid "A full implementation of capabilities requires that:"
1629 msgstr "完全な形のケーパビリティを実装するには、以下の要件を満たす必要がある:"
1632 #: build/C/man7/capabilities.7:446 build/C/man7/capabilities.7:589
1633 #: build/C/man7/capabilities.7:736 build/C/man7/capabilities.7:789
1639 #: build/C/man7/capabilities.7:450
1641 "For all privileged operations, the kernel must check whether the thread has "
1642 "the required capability in its effective set."
1644 "全ての特権操作について、カーネルはそのスレッドの実効ケーパビリティセットに 必"
1645 "要なケーパビリティがあるかを確認する。"
1648 #: build/C/man7/capabilities.7:450 build/C/man7/capabilities.7:594
1649 #: build/C/man7/capabilities.7:742 build/C/man7/capabilities.7:795
1655 #: build/C/man7/capabilities.7:453
1657 "The kernel must provide system calls allowing a thread's capability sets to "
1658 "be changed and retrieved."
1660 "カーネルで、あるスレッドのケーパビリティセットを変更したり、 取得したりできる"
1664 #: build/C/man7/capabilities.7:453 build/C/man7/capabilities.7:745
1665 #: build/C/man7/capabilities.7:799
1671 #: build/C/man7/capabilities.7:456
1673 "The file system must support attaching capabilities to an executable file, "
1674 "so that a process gains those capabilities when the file is executed."
1676 "ファイルシステムが、実行可能ファイルにケーパビリティを付与でき、ファイル 実行"
1677 "時にそのケーパビリティをプロセスが取得できるような機能をサポートする。"
1680 #: build/C/man7/capabilities.7:460
1682 "Before kernel 2.6.24, only the first two of these requirements are met; "
1683 "since kernel 2.6.24, all three requirements are met."
1685 "カーネル 2.6.24 より前では、最初の 2つの要件のみが満たされている。 カーネル "
1686 "2.6.24 以降では、3つの要件すべてが満たされている。"
1689 #: build/C/man7/capabilities.7:460
1691 msgid "Thread Capability Sets"
1692 msgstr "スレッドケーパビリティセット"
1695 #: build/C/man7/capabilities.7:463
1697 "Each thread has three capability sets containing zero or more of the above "
1700 "各スレッドは以下の 3種類のケーパビリティセットを持つ。各々のケーパビリティ"
1701 "セットは 上記のケーパビリティの組み合わせである (全てのケーパビリティが無効で"
1705 #: build/C/man7/capabilities.7:463
1707 msgid "I<Permitted>:"
1708 msgstr "I<許可 (permitted)>:"
1711 #: build/C/man7/capabilities.7:471
1713 "This is a limiting superset for the effective capabilities that the thread "
1714 "may assume. It is also a limiting superset for the capabilities that may be "
1715 "added to the inheritable set by a thread that does not have the "
1716 "B<CAP_SETPCAP> capability in its effective set."
1718 "そのスレッドが持つことになっている実効ケーパビリティの 限定的なスーパーセット"
1719 "である。 これは、実効ケーパビリティセットに B<CAP_SETPCAP> ケーパビリティを"
1720 "持っていないスレッドが継承可能ケーパビリティセットに 追加可能なケーパビリティ"
1724 #: build/C/man7/capabilities.7:477
1726 "If a thread drops a capability from its permitted set, it can never "
1727 "reacquire that capability (unless it B<execve>(2)s either a set-user-ID-root "
1728 "program, or a program whose associated file capabilities grant that "
1731 "許可ケーパビリティセットから削除してしまったケーパビリティは、 (set-user-ID-"
1732 "root プログラムか、 そのケーパビリティをファイルケーパビリティで許可している"
1733 "プログラムを B<execve>(2) しない限りは) もう一度獲得することはできない。"
1736 #: build/C/man7/capabilities.7:477
1738 msgid "I<Inheritable>:"
1739 msgstr "I<継承可能 (inheritable)>:"
1742 #: build/C/man7/capabilities.7:484
1744 "This is a set of capabilities preserved across an B<execve>(2). It provides "
1745 "a mechanism for a process to assign capabilities to the permitted set of the "
1746 "new program during an B<execve>(2)."
1748 "B<execve>(2) を前後で保持されるケーパビリティセットである。 この仕組みを使う"
1749 "ことで、あるプロセスが B<execve>(2) を行う際に新しいプログラムの許可ケーパビ"
1750 "リティセットとして 割り当てるケーパビリティを指定することができる。"
1753 #: build/C/man7/capabilities.7:484 build/C/man7/capabilities.7:526
1755 msgid "I<Effective>:"
1756 msgstr "I<実効 (effective)>:"
1759 #: build/C/man7/capabilities.7:488
1761 "This is the set of capabilities used by the kernel to perform permission "
1762 "checks for the thread."
1764 "カーネルがスレッドの権限 (permission) をチェックするときに 使用するケーパビリ"
1768 #: build/C/man7/capabilities.7:494
1770 "A child created via B<fork>(2) inherits copies of its parent's capability "
1771 "sets. See below for a discussion of the treatment of capabilities during "
1774 "B<fork>(2) で作成される子プロセスは、親のケーパビリティセットのコピーを継承"
1775 "する。 B<execve>(2) 中のケーパビリティの扱いについては下記を参照のこと。"
1778 #: build/C/man7/capabilities.7:499
1780 "Using B<capset>(2), a thread may manipulate its own capability sets (see "
1783 "B<capset>(2) を使うと、プロセスは自分自身のケーパビリティセット を操作するこ"
1787 #: build/C/man7/capabilities.7:499
1789 msgid "File Capabilities"
1790 msgstr "ファイルケーパビリティ"
1793 #: build/C/man7/capabilities.7:514
1795 "Since kernel 2.6.24, the kernel supports associating capability sets with an "
1796 "executable file using B<setcap>(8). The file capability sets are stored in "
1797 "an extended attribute (see B<setxattr>(2)) named I<security.capability>. "
1798 "Writing to this extended attribute requires the B<CAP_SETFCAP> capability. "
1799 "The file capability sets, in conjunction with the capability sets of the "
1800 "thread, determine the capabilities of a thread after an B<execve>(2)."
1802 "カーネル 2.6.24 以降では、 B<setcap>(8) を使って実行ファイルにケーパビリティ"
1803 "セットを対応付けることができる。 ファイルケーパビリティセットは I<security."
1804 "capability> という名前の拡張属性に保存される (B<setxattr>(2) 参照)。この拡張"
1805 "属性への書き込みには B<CAP_SETFCAP> ケーパビリティが必要である。 ファイルケー"
1806 "パビリティセットとスレッドのケーパビリティセットの両方が 考慮され、 B<execve>"
1807 "(2) 後のスレッドのケーパビリティセットが決定される。"
1810 #: build/C/man7/capabilities.7:516
1811 msgid "The three file capability sets are:"
1812 msgstr "3 つのファイルケーパビリティセットが定義されている。"
1815 #: build/C/man7/capabilities.7:516
1817 msgid "I<Permitted> (formerly known as I<forced>):"
1818 msgstr "I<許可 (Permitted)> (以前のI<強制 (Forced)>):"
1821 #: build/C/man7/capabilities.7:520
1823 "These capabilities are automatically permitted to the thread, regardless of "
1824 "the thread's inheritable capabilities."
1826 "スレッドの継承可能ケーパビリティに関わらず、そのスレッドに自動的に 認められる"
1830 #: build/C/man7/capabilities.7:520
1832 msgid "I<Inheritable> (formerly known as I<allowed>):"
1833 msgstr "I<継承可能 (Inheritable)> (以前の I<許容 (Allowed)>):"
1836 #: build/C/man7/capabilities.7:526
1838 "This set is ANDed with the thread's inheritable set to determine which "
1839 "inheritable capabilities are enabled in the permitted set of the thread "
1840 "after the B<execve>(2)."
1842 "このセットと、スレッドの継承可能ケーパビリティセットとの 論理積 (AND) がとら"
1843 "れ、 B<execve>(2) の後にそのスレッドの許可ケーパビリティセットで有効となる "
1844 "継承可能ケーパビリティが決定される。"
1847 #: build/C/man7/capabilities.7:536
1849 "This is not a set, but rather just a single bit. If this bit is set, then "
1850 "during an B<execve>(2) all of the new permitted capabilities for the thread "
1851 "are also raised in the effective set. If this bit is not set, then after an "
1852 "B<execve>(2), none of the new permitted capabilities is in the new effective "
1855 "これは集合ではなく、1 ビットの情報である。 このビットがセットされていると、 "
1856 "B<execve>(2) 実行中に、そのスレッドの新しい許可ケーパビリティが全て 実効ケー"
1857 "パビリティ集合においてもセットされる。 このビットがセットされていない場合、 "
1858 "B<execve>(2) 後には新しい許可ケーパビリティのどれも新しい実効ケーパビリティ"
1862 #: build/C/man7/capabilities.7:552
1864 "Enabling the file effective capability bit implies that any file permitted "
1865 "or inheritable capability that causes a thread to acquire the corresponding "
1866 "permitted capability during an B<execve>(2) (see the transformation rules "
1867 "described below) will also acquire that capability in its effective set. "
1868 "Therefore, when assigning capabilities to a file (B<setcap>(8), "
1869 "B<cap_set_file>(3), B<cap_set_fd>(3)), if we specify the effective flag as "
1870 "being enabled for any capability, then the effective flag must also be "
1871 "specified as enabled for all other capabilities for which the corresponding "
1872 "permitted or inheritable flags is enabled."
1874 "ファイルの実効ケーパビリティビットを有効にするというのは、 B<execve>(2) 実行"
1875 "時に、ファイルの許可ケーパビリティと継承ケーパビリティに対応するものが スレッ"
1876 "ドの許可ケーパビリティセットとしてセットされるが、 これが実効ケーパビリティ"
1877 "セットにもセットされるということである (ケーパビリティの変換ルールは下記参"
1878 "照)。 したがって、ファイルにケーパビリティを割り当てる際 (B<setcap>(8), "
1879 "B<cap_set_file>(3), B<cap_set_fd>(3))、 いずれかのケーパビリティに対して実効"
1880 "フラグを有効と指定する場合、 許可フラグや継承可能フラグを有効にした他の全ての"
1881 "ケーパビリティ についても実効フラグを有効と指定しなければならない。"
1884 #: build/C/man7/capabilities.7:552
1886 msgid "Transformation of Capabilities During execve()"
1887 msgstr "execve() 中のケーパビリティの変換"
1890 #: build/C/man7/capabilities.7:558
1892 "During an B<execve>(2), the kernel calculates the new capabilities of the "
1893 "process using the following algorithm:"
1895 "B<execve>(2) 実行時に、カーネルはプロセスの新しいケーパビリティを次の アルゴ"
1899 #: build/C/man7/capabilities.7:563
1902 "P'(permitted) = (P(inheritable) & F(inheritable)) |\n"
1903 " (F(permitted) & cap_bset)\n"
1905 "P'(permitted) = (P(inheritable) & F(inheritable)) |\n"
1906 " (F(permitted) & cap_bset)\n"
1909 #: build/C/man7/capabilities.7:565
1911 msgid "P'(effective) = F(effective) ? P'(permitted) : 0\n"
1912 msgstr "P'(effective) = F(effective) ? P'(permitted) : 0\n"
1915 #: build/C/man7/capabilities.7:567
1917 msgid "P'(inheritable) = P(inheritable) [i.e., unchanged]\n"
1918 msgstr "P'(inheritable) = P(inheritable) [つまり、変更されない]\n"
1921 #: build/C/man7/capabilities.7:571
1923 msgstr "各変数の意味は以下の通り:"
1926 #: build/C/man7/capabilities.7:572
1932 #: build/C/man7/capabilities.7:575
1933 msgid "denotes the value of a thread capability set before the B<execve>(2)"
1934 msgstr "B<execve>(2) 前のスレッドのケーパビリティセットの値"
1937 #: build/C/man7/capabilities.7:575
1943 #: build/C/man7/capabilities.7:578
1944 msgid "denotes the value of a capability set after the B<execve>(2)"
1945 msgstr "B<execve>(2) 後のスレッドのケーパビリティセットの値"
1948 #: build/C/man7/capabilities.7:578
1954 #: build/C/man7/capabilities.7:580
1955 msgid "denotes a file capability set"
1956 msgstr "ファイルケーパビリティセットの値"
1959 #: build/C/man7/capabilities.7:580
1965 #: build/C/man7/capabilities.7:582
1966 msgid "is the value of the capability bounding set (described below)."
1967 msgstr "ケーパビリティバウンディングセットの値 (下記参照)"
1970 #: build/C/man7/capabilities.7:584
1972 msgid "Capabilities and execution of programs by root"
1973 msgstr "ケーパビリティと、ルートによるプログラムの実行"
1976 #: build/C/man7/capabilities.7:589
1978 "In order to provide an all-powerful I<root> using capability sets, during an "
1981 "B<execve>(2) 時に、ケーパビリティセットを使って、全ての権限を持った I<root> "
1985 #: build/C/man7/capabilities.7:594
1987 "If a set-user-ID-root program is being executed, or the real user ID of the "
1988 "process is 0 (root) then the file inheritable and permitted sets are "
1989 "defined to be all ones (i.e., all capabilities enabled)."
1991 "set-user-ID-root プログラムが実行される場合、 またはプロセスの実ユーザ ID が "
1992 "0 (root) の場合、 ファイルの継承可能セットと許可セットを全て 1 (全てのケーパ"
1996 #: build/C/man7/capabilities.7:597
1998 "If a set-user-ID-root program is being executed, then the file effective bit "
1999 "is defined to be one (enabled)."
2001 "set-user-ID-root プログラムが実行される場合、 ファイルの実効ケーパビリティ"
2002 "ビットを 1 (enabled) に定義する。"
2004 #. If a process with real UID 0, and nonzero effective UID does an
2005 #. exec(), then it gets all capabilities in its
2006 #. permitted set, and no effective capabilities
2008 #: build/C/man7/capabilities.7:612
2010 "The upshot of the above rules, combined with the capabilities "
2011 "transformations described above, is that when a process B<execve>(2)s a set-"
2012 "user-ID-root program, or when a process with an effective UID of 0 B<execve>"
2013 "(2)s a program, it gains all capabilities in its permitted and effective "
2014 "capability sets, except those masked out by the capability bounding set. "
2015 "This provides semantics that are the same as those provided by traditional "
2018 "上記のルールにケーパビリティ変換を適用した結果をまとめると、 プロセスが set-"
2019 "user-ID-root プログラムを B<execve>(2) する場合、または実効 UID が 0 のプロ"
2020 "セスがプログラムを B<execve>(2) する場合、許可と実効のケーパビリティセットの"
2021 "全ケーパビリティ (正確には、ケーパビリティバウンディングセットによるマスクで"
2022 "除外されるもの 以外の全てのケーパビリティ) を取得するということである。 これ"
2023 "により、伝統的な UNIX システムと同じ振る舞いができるようになっている。"
2026 #: build/C/man7/capabilities.7:612
2028 msgid "Capability bounding set"
2029 msgstr "ケーパビリティ・バウンディングセット"
2032 #: build/C/man7/capabilities.7:617
2034 "The capability bounding set is a security mechanism that can be used to "
2035 "limit the capabilities that can be gained during an B<execve>(2). The "
2036 "bounding set is used in the following ways:"
2038 "ケーパビリティ・バウンディングセット (capability bounding set) は、 B<execve>"
2039 "(2) 時に獲得できるケーパビリティを制限するために使われる セキュリティ機構で"
2040 "ある。 バウンディングセットは以下のように使用される。"
2043 #: build/C/man7/capabilities.7:625
2045 "During an B<execve>(2), the capability bounding set is ANDed with the file "
2046 "permitted capability set, and the result of this operation is assigned to "
2047 "the thread's permitted capability set. The capability bounding set thus "
2048 "places a limit on the permitted capabilities that may be granted by an "
2051 "B<execve>(2) 実行時に、ケーパビリティ・バウンディングセットと ファイルの許可"
2052 "ケーパビリティセットの論理和 (AND) を取ったものが、 そのスレッドの許可ケーパ"
2053 "ビリティセットに割り当てられる。 つまり、ケーパビリティ・バウンディングセット"
2054 "は、 実行ファイルが認めている許可ケーパビリティに対して 制限を課す働きをす"
2058 #: build/C/man7/capabilities.7:637
2060 "(Since Linux 2.6.25) The capability bounding set acts as a limiting "
2061 "superset for the capabilities that a thread can add to its inheritable set "
2062 "using B<capset>(2). This means that if a capability is not in the bounding "
2063 "set, then a thread can't add this capability to its inheritable set, even if "
2064 "it was in its permitted capabilities, and thereby cannot have this "
2065 "capability preserved in its permitted set when it B<execve>(2)s a file that "
2066 "has the capability in its inheritable set."
2068 "(Linux 2.6.25 以降) ケーパビリティ・バウンディングセットは、スレッドが "
2069 "B<capset>(2) により自身の継承可能セットに追加可能なケーパビリティの母集団を "
2070 "制限する役割を持つ。 スレッドに許可されたケーパビリティであっても、バウンディ"
2071 "ングセットに 含まれていなければ、スレッドはそのケーパビリティは自身の継承可能"
2072 "セットに 追加できず、その結果、継承可能セットにそのケーパビリティを含むファイ"
2073 "ルを B<execve>(2) する場合、そのケーパビリティを許可セットに持ち続けることが"
2077 #: build/C/man7/capabilities.7:644
2079 "Note that the bounding set masks the file permitted capabilities, but not "
2080 "the inherited capabilities. If a thread maintains a capability in its "
2081 "inherited set that is not in its bounding set, then it can still gain that "
2082 "capability in its permitted set by executing a file that has the capability "
2083 "in its inherited set."
2085 "バウンディングセットがマスクを行うのは、継承可能ケーパビリティではなく、 ファ"
2086 "イルの許可ケーパビリティのマスクを行う点に注意すること。 あるスレッドの継承可"
2087 "能セットにそのスレッドのバウンディングセットに 存在しないケーパビリティが含ま"
2088 "れている場合、そのスレッドは、 継承可能セットに含まれるケーパビリティを持つ"
2089 "ファイルを実行することにより、 許可セットに含まれるケーパビリティも獲得できる"
2093 #: build/C/man7/capabilities.7:647
2095 "Depending on the kernel version, the capability bounding set is either a "
2096 "system-wide attribute, or a per-process attribute."
2098 "カーネルのバージョンにより、ケーパビリティ・バウンディングセットは システム共"
2099 "通の属性の場合と、プロセス単位の属性の場合がある。"
2102 #: build/C/man7/capabilities.7:649
2103 msgid "B<Capability bounding set prior to Linux 2.6.25>"
2104 msgstr "B<Linux 2.6.25 より前のケーパビリティ・バウンディングセット>"
2107 #: build/C/man7/capabilities.7:657
2109 "In kernels before 2.6.25, the capability bounding set is a system-wide "
2110 "attribute that affects all threads on the system. The bounding set is "
2111 "accessible via the file I</proc/sys/kernel/cap-bound>. (Confusingly, this "
2112 "bit mask parameter is expressed as a signed decimal number in I</proc/sys/"
2113 "kernel/cap-bound>.)"
2115 "2.6.25 より前のカーネルでは、ケーパビリティ・バウンディングセットは システム"
2116 "共通の属性で、システム上の全てのスレッドに適用される。 バウンディングセット"
2117 "は I</proc/sys/kernel/cap-bound> ファイル経由で参照できる。 (間違えやすいが、"
2118 "このビットマスク形式のパラメータは、 I</proc/sys/kernel/cap-bound> では符号付"
2122 #: build/C/man7/capabilities.7:664
2124 "Only the B<init> process may set capabilities in the capability bounding "
2125 "set; other than that, the superuser (more precisely: programs with the "
2126 "B<CAP_SYS_MODULE> capability) may only clear capabilities from this set."
2128 "B<init> プロセスだけがケーパビリティ・バウンディングセットで ケーパビリティを"
2129 "セットすることができる。 それ以外では、スーパーユーザ (より正確には、 "
2130 "B<CAP_SYS_MODULE> ケーパビリティを持ったプログラム) が、 ケーパビリティ・バウ"
2131 "ンディングセットのケーパビリティのクリアが できるだけである。"
2134 #: build/C/man7/capabilities.7:673
2136 "On a standard system the capability bounding set always masks out the "
2137 "B<CAP_SETPCAP> capability. To remove this restriction (dangerous!), modify "
2138 "the definition of B<CAP_INIT_EFF_SET> in I<include/linux/capability.h> and "
2139 "rebuild the kernel."
2141 "通常のシステムでは、ケーパビリティ・バウンディングセットは、 B<CAP_SETPCAP> "
2142 "が無効になっている。 この制限を取り去るには (取り去るのは危険!)、 I<include/"
2143 "linux/capability.h> 内の B<CAP_INIT_EFF_SET> の定義を修正し、カーネルを再構築"
2147 #: build/C/man7/capabilities.7:677
2149 "The system-wide capability bounding set feature was added to Linux starting "
2150 "with kernel version 2.2.11."
2152 "システム共通のケーパビリティ・バウンディングセット機能は、 カーネル 2.2.11 以"
2156 #: build/C/man7/capabilities.7:679
2157 msgid "B<Capability bounding set from Linux 2.6.25 onward>"
2158 msgstr "B<Linux 2.6.25 以降のケーパビリティ・バウンディングセット>"
2161 #: build/C/man7/capabilities.7:684
2163 "From Linux 2.6.25, the I<capability bounding set> is a per-thread "
2164 "attribute. (There is no longer a system-wide capability bounding set.)"
2166 "Linux 2.6.25 以降では、 「ケーパビリティ・バウンディングセット」はスレッド単"
2167 "位の属性である (システム共通のケーパビリティ・バウンディングセットはもはや存"
2171 #: build/C/man7/capabilities.7:689
2173 "The bounding set is inherited at B<fork>(2) from the thread's parent, and "
2174 "is preserved across an B<execve>(2)."
2176 "バウンディングセットは B<fork>(2) 時にはスレッドの親プロセスから継承され、 "
2177 "B<execve>(2) の前後では保持される。"
2180 #: build/C/man7/capabilities.7:702
2182 "A thread may remove capabilities from its capability bounding set using the "
2183 "B<prctl>(2) B<PR_CAPBSET_DROP> operation, provided it has the "
2184 "B<CAP_SETPCAP> capability. Once a capability has been dropped from the "
2185 "bounding set, it cannot be restored to that set. A thread can determine if "
2186 "a capability is in its bounding set using the B<prctl>(2) "
2187 "B<PR_CAPBSET_READ> operation."
2189 "スレッドが B<CAP_SETPCAP> ケーパビリティを持っている場合、そのスレッドは "
2190 "B<prctl>(2) の B<PR_CAPBSET_DROP> 操作を使って自身のケーパビリティ・バウン"
2191 "ディングセットから ケーパビリティを削除することができる。 いったんケーパビリ"
2192 "ティをバウンディングセットから削除してしまうと、 スレッドはそのケーパビリティ"
2193 "を再度セットすることはできない。 B<prctl>(2) の B<PR_CAPBSET_READ> 操作を使"
2194 "うことで、スレッドがあるケーパビリティが自身のバウンディングセット に含まれて"
2198 #: build/C/man7/capabilities.7:720
2201 #| "Removing capabilities from the bounding set is only supported if file "
2202 #| "capabilities are compiled into the kernel "
2203 #| "(CONFIG_SECURITY_FILE_CAPABILITIES). In that case, the B<init> process "
2204 #| "(the ancestor of all processes) begins with a full bounding set. If file "
2205 #| "capabilities are not compiled into the kernel, then B<init> begins with a "
2206 #| "full bounding set minus B<CAP_SETPCAP>, because this capability has a "
2207 #| "different meaning when there are no file capabilities."
2209 "Removing capabilities from the bounding set is only supported if file "
2210 "capabilities are compiled into the kernel. In kernels before Linux 2.6.33, "
2211 "file capabilities were an optional feature configurable via the "
2212 "CONFIG_SECURITY_FILE_CAPABILITIES option. Since Linux 2.6.33, the "
2213 "configuration option has been removed and file capabilities are always part "
2214 "of the kernel. When file capabilities are compiled into the kernel, the "
2215 "B<init> process (the ancestor of all processes) begins with a full bounding "
2216 "set. If file capabilities are not compiled into the kernel, then B<init> "
2217 "begins with a full bounding set minus B<CAP_SETPCAP>, because this "
2218 "capability has a different meaning when there are no file capabilities."
2220 "バウンディングセットからのケーパビリティの削除がサポートされるのは、 カーネル"
2221 "のコンパイル時にファイルケーパビリティが有効になっている場合 "
2222 "(CONFIG_SECURITY_FILE_CAPABILITIES) だけである。 この場合には、 (全てのプロセ"
2223 "スの先祖である) I<init> プロセスはバウンディングセットで全てのケーパビリティ"
2224 "が セットされた状態で開始する。 ファイルケーパビリティが有効になっていない場"
2225 "合には、 I<init> はバウンディングセットで B<CAP_SETPCAP> 以外の全てのケーパビ"
2226 "リティがセットされた状態で開始する。 このようになっているのは、 "
2227 "B<CAP_SETPCAP> ケーパビリティがファイルケーパビリティがサポートされていない場"
2228 "合には 違った意味を持つからである。"
2231 #: build/C/man7/capabilities.7:727
2233 "Removing a capability from the bounding set does not remove it from the "
2234 "thread's inherited set. However it does prevent the capability from being "
2235 "added back into the thread's inherited set in the future."
2237 "バウンディングセットからケーパビリティを削除しても、 スレッドの継承可能セット"
2238 "からはそのケーパビリティは削除されない。 しかしながら、バウンディングセットか"
2239 "らの削除により、 この先そのケーパビリティをスレッドの継承可能セットに追加する"
2243 #: build/C/man7/capabilities.7:727
2245 msgid "Effect of User ID Changes on Capabilities"
2246 msgstr "ユーザ ID 変更のケーパビリティへの影響"
2249 #: build/C/man7/capabilities.7:736
2251 "To preserve the traditional semantics for transitions between 0 and nonzero "
2252 "user IDs, the kernel makes the following changes to a thread's capability "
2253 "sets on changes to the thread's real, effective, saved set, and file system "
2254 "user IDs (using B<setuid>(2), B<setresuid>(2), or similar):"
2256 "ユーザ ID が 0 と 0 以外の間で変化する際の振る舞いを従来と同じにするため、 ス"
2257 "レッドの実 UID、実効 UID、保存 set-user-ID、ファイルシステム UID が "
2258 "(B<setuid>(2), B<setresuid>(2) などを使って) 変更された際に、カーネルはその"
2259 "スレッドのケーパビリティセットに 以下の変更を行う:"
2262 #: build/C/man7/capabilities.7:742
2264 "If one or more of the real, effective or saved set user IDs was previously "
2265 "0, and as a result of the UID changes all of these IDs have a nonzero value, "
2266 "then all capabilities are cleared from the permitted and effective "
2269 "UID の変更前には実 UID、実効 UID、保存 set-user-ID のうち 少なくとも一つが 0 "
2270 "で、変更後に実 UID、実効 UID、保存 set-user-ID が すべて 0 以外の値になった場"
2271 "合、許可と実効のケーパビリティセットの 全ケーパビリティをクリアする。"
2274 #: build/C/man7/capabilities.7:745
2276 "If the effective user ID is changed from 0 to nonzero, then all capabilities "
2277 "are cleared from the effective set."
2279 "実効 UID が 0 から 0 以外に変更された場合、 実効ケーパビリティセットの全ケー"
2283 #: build/C/man7/capabilities.7:748
2285 "If the effective user ID is changed from nonzero to 0, then the permitted "
2286 "set is copied to the effective set."
2288 "実効 UID が 0 以外から 0 に変更された場合、 許可ケーパビリティセットの内容を"
2289 "実効ケーパビリティセットにコピーする。"
2292 #: build/C/man7/capabilities.7:748 build/C/man7/capabilities.7:803
2298 #: build/C/man7/capabilities.7:766
2300 "If the file system user ID is changed from 0 to nonzero (see B<setfsuid>"
2301 "(2)) then the following capabilities are cleared from the effective set: "
2302 "B<CAP_CHOWN>, B<CAP_DAC_OVERRIDE>, B<CAP_DAC_READ_SEARCH>, B<CAP_FOWNER>, "
2303 "B<CAP_FSETID>, B<CAP_LINUX_IMMUTABLE> (since Linux 2.2.30), "
2304 "B<CAP_MAC_OVERRIDE>, and B<CAP_MKNOD> (since Linux 2.2.30). If the file "
2305 "system UID is changed from nonzero to 0, then any of these capabilities that "
2306 "are enabled in the permitted set are enabled in the effective set."
2308 "ファイルシステム UID が 0 から 0 以外に変更された場合 (B<setfsuid>(2) 参"
2309 "照)、実効ケーパビリティセットの以下のケーパビリティがクリアされる: "
2310 "B<CAP_CHOWN>, B<CAP_DAC_OVERRIDE>, B<CAP_DAC_READ_SEARCH>, B<CAP_FOWNER>, "
2311 "B<CAP_FSETID>, B<CAP_LINUX_IMMUTABLE> (Linux 2.2.30 以降), "
2312 "B<CAP_MAC_OVERRIDE>, B<CAP_MKNOD> (Linux 2.2.30 以降)。 ファイルシステム UID "
2313 "が 0 以外から 0 に変更された場合、 上記のケーパビリティのうち許可ケーパビリ"
2314 "ティセットで有効になっているものが 実効ケーパビリティセットで有効にされる。"
2317 #: build/C/man7/capabilities.7:774
2319 "If a thread that has a 0 value for one or more of its user IDs wants to "
2320 "prevent its permitted capability set being cleared when it resets all of its "
2321 "user IDs to nonzero values, it can do so using the B<prctl>(2) "
2322 "B<PR_SET_KEEPCAPS> operation."
2324 "各種 UID のうち少なくとも一つが 0 であるスレッドが、 その UID の全てが 0 以外"
2325 "になったときに許可ケーパビリティセットが クリアされないようにしたい場合に"
2326 "は、 B<prctl>(2) の B<PR_SET_KEEPCAPS> 操作を使えばよい。"
2329 #: build/C/man7/capabilities.7:774
2331 msgid "Programmatically adjusting capability sets"
2332 msgstr "プログラムでケーパビリティセットを調整する"
2335 #: build/C/man7/capabilities.7:789
2337 "A thread can retrieve and change its capability sets using the B<capget>(2) "
2338 "and B<capset>(2) system calls. However, the use of B<cap_get_proc>(3) and "
2339 "B<cap_set_proc>(3), both provided in the I<libcap> package, is preferred for "
2340 "this purpose. The following rules govern changes to the thread capability "
2343 "各スレッドは、 B<capget>(2) や B<capset>(2) を使って、自身のケーパビリティ"
2344 "セットを取得したり変更したりできる。 ただし、これを行うには、 I<libcap> パッ"
2345 "ケージで提供されている B<cap_get_proc>(3) や B<cap_set_proc>(3) を使うのが"
2346 "望ましい。 スレッドのケーパビリティセットの変更には以下のルールが適用される。"
2349 #: build/C/man7/capabilities.7:795
2351 "If the caller does not have the B<CAP_SETPCAP> capability, the new "
2352 "inheritable set must be a subset of the combination of the existing "
2353 "inheritable and permitted sets."
2355 "呼び出し側が B<CAP_SETPCAP> ケーパビリティを持っていない場合、新しい継承可能"
2356 "セットは、 既存の継承可能セットと許可セットの積集合 (AND) の部分集合で なけれ"
2360 #: build/C/man7/capabilities.7:799
2362 "(Since kernel 2.6.25) The new inheritable set must be a subset of the "
2363 "combination of the existing inheritable set and the capability bounding set."
2365 "(カーネル 2.6.25 以降) 新しい継承可能セットは、既存の継承可能セットとケーパ"
2366 "ビリティ・ バウンディングセットの積集合 (AND) の部分集合でなければならない。"
2369 #: build/C/man7/capabilities.7:803
2371 "The new permitted set must be a subset of the existing permitted set (i.e., "
2372 "it is not possible to acquire permitted capabilities that the thread does "
2373 "not currently have)."
2375 "新しい許可セットは、既存の許可セットの部分集合でなければならない (つまり、そ"
2376 "のスレッドが現在持っていない許可ケーパビリティを 獲得することはできない)。"
2379 #: build/C/man7/capabilities.7:805
2380 msgid "The new effective set must be a subset of the new permitted set."
2382 "新しい実効ケーパビリティセットは新しい許可ケーパビリティセットの 部分集合に"
2386 #: build/C/man7/capabilities.7:805
2388 msgid "The \"securebits\" flags: establishing a capabilities-only environment"
2389 msgstr "securebits フラグ: ケーパビリティだけの環境を構築する"
2391 #. For some background:
2392 #. see http://lwn.net/Articles/280279/ and
2393 #. http://article.gmane.org/gmane.linux.kernel.lsm/5476/
2395 #: build/C/man7/capabilities.7:816
2397 "Starting with kernel 2.6.26, and with a kernel in which file capabilities "
2398 "are enabled, Linux implements a set of per-thread I<securebits> flags that "
2399 "can be used to disable special handling of capabilities for UID 0 "
2400 "(I<root>). These flags are as follows:"
2402 "カーネル 2.6.26 以降で、 ファイルケーパビリティが有効になったカーネルでは、 "
2403 "スレッド単位の I<securebits> フラグが実装されており、このフラグを使うと UID "
2404 "0 (I<root>) に対するケーパビリティの特別扱いを無効することができる。 以下の"
2408 #: build/C/man7/capabilities.7:816
2410 msgid "B<SECBIT_KEEP_CAPS>"
2411 msgstr "B<SECBIT_KEEP_CAPS>"
2414 #: build/C/man7/capabilities.7:828
2416 "Setting this flag allows a thread that has one or more 0 UIDs to retain its "
2417 "capabilities when it switches all of its UIDs to a nonzero value. If this "
2418 "flag is not set, then such a UID switch causes the thread to lose all "
2419 "capabilities. This flag is always cleared on an B<execve>(2). (This flag "
2420 "provides the same functionality as the older B<prctl>(2) B<PR_SET_KEEPCAPS> "
2423 "このフラグをセットされている場合、UID が 0 のスレッドの UID が 0 以外の値に "
2424 "切り替わる際に、そのスレッドはケーパビリティを維持することができる。 このフラ"
2425 "グがセットされていない場合には、UID が 0 から 0 以外の値に 切り替わると、その"
2426 "スレッドは全てのケーパビリティを失う。 このフラグは B<execve>(2) 時には全て"
2427 "クリアされる (このフラグは、以前の B<prctl>(2) の B<PR_SET_KEEPCAPS> 操作と"
2431 #: build/C/man7/capabilities.7:828
2433 msgid "B<SECBIT_NO_SETUID_FIXUP>"
2434 msgstr "B<SECBIT_NO_SETUID_FIXUP>"
2437 #: build/C/man7/capabilities.7:835
2439 "Setting this flag stops the kernel from adjusting capability sets when the "
2440 "threads's effective and file system UIDs are switched between zero and "
2441 "nonzero values. (See the subsection I<Effect of User ID Changes on "
2444 "このフラグをセットすると、スレッドの実効 UID とファイルシステム UID が 0 と "
2445 "0 以外の間で切り替わった場合に、 カーネルはケーパビリティセットの調整を行わな"
2446 "くなる (「ユーザ ID 変更のケーパビリティへの影響」の節を参照)。"
2449 #: build/C/man7/capabilities.7:835
2451 msgid "B<SECBIT_NOROOT>"
2452 msgstr "B<SECBIT_NOROOT>"
2455 #: build/C/man7/capabilities.7:843
2457 "If this bit is set, then the kernel does not grant capabilities when a set-"
2458 "user-ID-root program is executed, or when a process with an effective or "
2459 "real UID of 0 calls B<execve>(2). (See the subsection I<Capabilities and "
2460 "execution of programs by root>.)"
2462 "このビットがセットされている場合、 set-user-ID-root プログラムの実行時や、 実"
2463 "効 UID か 実 UID が 0 のプロセスが B<execve>(2) を呼び出した時に、カーネルは"
2464 "ケーパビリティを許可しない (「ケーパビリティと、ルートによるプログラムの実"
2468 #: build/C/man7/capabilities.7:853
2470 "Each of the above \"base\" flags has a companion \"locked\" flag. Setting "
2471 "any of the \"locked\" flags is irreversible, and has the effect of "
2472 "preventing further changes to the corresponding \"base\" flag. The locked "
2473 "flags are: B<SECBIT_KEEP_CAPS_LOCKED>, B<SECBIT_NO_SETUID_FIXUP_LOCKED>, and "
2474 "B<SECBIT_NOROOT_LOCKED>."
2476 "上記の \"base\" フラグの各々には対応する \"locked\" フラグが存在する。 いずれ"
2477 "の \"locked\" フラグも一度セットされると戻すことはできず、 それ以降は対応す"
2478 "る \"base\" フラグを変更することができなくなる。 \"locked\" フラグは "
2479 "B<SECBIT_KEEP_CAPS_LOCKED>, B<SECBIT_NO_SETUID_FIXUP_LOCKED>, "
2480 "B<SECBIT_NOROOT_LOCKED> という名前である。"
2483 #: build/C/man7/capabilities.7:865
2485 "The I<securebits> flags can be modified and retrieved using the B<prctl>(2) "
2486 "B<PR_SET_SECUREBITS> and B<PR_GET_SECUREBITS> operations. The "
2487 "B<CAP_SETPCAP> capability is required to modify the flags."
2489 "I<securebits> フラグは、 B<prctl>(2) の操作 B<PR_SET_SECUREBITS> や "
2490 "B<PR_GET_SECUREBITS> を使うことで変更したり取得したりできる。 フラグを変更す"
2491 "るには B<CAP_SETPCAP> ケーパビリティが必要である。"
2494 #: build/C/man7/capabilities.7:874
2497 #| "The I<securebits> flags are inherited by child processes. During an "
2498 #| "B<execve>(2), all of the flags are preserved, except B<SECURE_KEEP_CAPS> "
2499 #| "which is always cleared."
2501 "The I<securebits> flags are inherited by child processes. During an "
2502 "B<execve>(2), all of the flags are preserved, except B<SECBIT_KEEP_CAPS> "
2503 "which is always cleared."
2505 "I<securebits> フラグは子プロセスに継承される。 B<execve>(2) においては、 "
2506 "B<SECURE_KEEP_CAPS> が常にクリアされる以外は、全てのフラグが保持される。"
2509 #: build/C/man7/capabilities.7:879
2511 "An application can use the following call to lock itself, and all of its "
2512 "descendants, into an environment where the only way of gaining capabilities "
2513 "is by executing a program with associated file capabilities:"
2515 "アプリケーションは、以下の呼び出しを行うことにより、 自分自身および子孫となる"
2516 "プロセス全てに対して、 必要なファイルケーパビリティを持ったプログラムを実行し"
2517 "ない限り、 対応するケーパビリティを獲得できないような状況に閉じこめることがで"
2521 #: build/C/man7/capabilities.7:888
2524 "prctl(PR_SET_SECUREBITS,\n"
2525 " SECBIT_KEEP_CAPS_LOCKED |\n"
2526 " SECBIT_NO_SETUID_FIXUP |\n"
2527 " SECBIT_NO_SETUID_FIXUP_LOCKED |\n"
2528 " SECBIT_NOROOT |\n"
2529 " SECBIT_NOROOT_LOCKED);\n"
2531 "prctl(PR_SET_SECUREBITS,\n"
2532 " SECBIT_KEEP_CAPS_LOCKED |\n"
2533 " SECBIT_NO_SETUID_FIXUP |\n"
2534 " SECBIT_NO_SETUID_FIXUP_LOCKED |\n"
2535 " SECBIT_NOROOT |\n"
2536 " SECBIT_NOROOT_LOCKED);\n"
2539 #: build/C/man7/capabilities.7:895
2541 "No standards govern capabilities, but the Linux capability implementation is "
2542 "based on the withdrawn POSIX.1e draft standard; see I<http://wt.xpilot.org/"
2543 "publications/posix.1e/>."
2545 "ケーパビリティに関する標準はないが、 Linux のケーパビリティは廃案になった "
2546 "POSIX.1e 草案に基づいて実装されている。 I<http://wt.xpilot.org/publications/"
2550 #: build/C/man7/capabilities.7:899
2552 "Since kernel 2.5.27, capabilities are an optional kernel component, and can "
2553 "be enabled/disabled via the CONFIG_SECURITY_CAPABILITIES kernel "
2554 "configuration option."
2556 "カーネル 2.5.27 以降、ケーパビリティは選択式のカーネルコンポーネント となって"
2557 "おり、カーネル設定オプション CONFIG_SECURITY_CAPABILITIES により有効/無効を切"
2561 #: build/C/man7/capabilities.7:906
2563 "The I</proc/PID/task/TID/status> file can be used to view the capability "
2564 "sets of a thread. The I</proc/PID/status> file shows the capability sets of "
2565 "a process's main thread."
2567 "I</proc/PID/task/TID/status> ファイルを使うと、スレッドのケーパビリティセット"
2568 "を見ることができる。 I</proc/PID/status> ファイルには、プロセスのメインスレッ"
2569 "ドのケーパビリティセットが表示される。"
2572 #: build/C/man7/capabilities.7:921
2574 "The I<libcap> package provides a suite of routines for setting and getting "
2575 "capabilities that is more comfortable and less likely to change than the "
2576 "interface provided by B<capset>(2) and B<capget>(2). This package also "
2577 "provides the B<setcap>(8) and B<getcap>(8) programs. It can be found at"
2579 "I<libcap> パッケージは、ケーパビリティを設定・取得するための ルーチン群を提供"
2580 "している。これらのインタフェースは、 B<capset>(2) と B<capget>(2) が提供す"
2581 "るインターフェースと比べて、より使いやすく、変更される可能性が少ない。 この"
2582 "パッケージでは、 B<setcap>(8), B<getcap>(8) というプログラムも提供されてい"
2583 "る。 パッケージは以下で入手できる。"
2586 #: build/C/man7/capabilities.7:923
2587 msgid "I<http://www.kernel.org/pub/linux/libs/security/linux-privs>."
2588 msgstr "I<http://www.kernel.org/pub/linux/libs/security/linux-privs>"
2591 #: build/C/man7/capabilities.7:932
2593 "Before kernel 2.6.24, and since kernel 2.6.24 if file capabilities are not "
2594 "enabled, a thread with the B<CAP_SETPCAP> capability can manipulate the "
2595 "capabilities of threads other than itself. However, this is only "
2596 "theoretically possible, since no thread ever has B<CAP_SETPCAP> in either of "
2599 "バージョン 2.6.24 より前、およびファイルケーパビリティが 有効になっていない"
2600 "2.6.24 以降のカーネルでは、 B<CAP_SETPCAP> ケーパビリティを持ったスレッドは自"
2601 "分以外のスレッドの ケーパビリティを操作できる。 しかしながら、これは理論的に"
2602 "可能というだけである。 以下のいずれかの場合においても、どのスレッドも "
2603 "B<CAP_SETPCAP> ケーパビリティを持つことはないからである。"
2606 #: build/C/man7/capabilities.7:937
2608 "In the pre-2.6.25 implementation the system-wide capability bounding set, I</"
2609 "proc/sys/kernel/cap-bound>, always masks out this capability, and this can "
2610 "not be changed without modifying the kernel source and rebuilding."
2612 "2.6.25 より前の実装では、システム共通のケーパビリティ・バウンディングセット "
2613 "I</proc/sys/kernel/cap-bound> ではこのケーパビリティは常に無効になっており、 "
2614 "ソースを変更してカーネルを再コンパイルしない限り、 これを変更することはできな"
2618 #: build/C/man7/capabilities.7:943
2620 "If file capabilities are disabled in the current implementation, then "
2621 "B<init> starts out with this capability removed from its per-process "
2622 "bounding set, and that bounding set is inherited by all other processes "
2623 "created on the system."
2625 "現在の実装ではファイルケーパビリティが無効になっている場合、 プロセス毎のバウ"
2626 "ンディングセットからこのケーパビリティを抜いて B<init> は開始され、 システム"
2627 "上で生成される他の全てのプロセスでこのバウンディングセットが 継承される。"
2630 #: build/C/man7/capabilities.7:959
2632 "B<capget>(2), B<prctl>(2), B<setfsuid>(2), B<cap_clear>(3), B<cap_copy_ext>"
2633 "(3), B<cap_from_text>(3), B<cap_get_file>(3), B<cap_get_proc>(3), B<cap_init>"
2634 "(3), B<capgetp>(3), B<capsetp>(3), B<credentials>(7), B<pthreads>(7), "
2635 "B<getcap>(8), B<setcap>(8)"
2637 "B<capget>(2), B<prctl>(2), B<setfsuid>(2), B<cap_clear>(3), B<cap_copy_ext>"
2638 "(3), B<cap_from_text>(3), B<cap_get_file>(3), B<cap_get_proc>(3), B<cap_init>"
2639 "(3), B<capgetp>(3), B<capsetp>(3), B<credentials>(7), B<pthreads>(7), "
2640 "B<getcap>(8), B<setcap>(8)"
2643 #: build/C/man7/capabilities.7:962
2644 msgid "I<include/linux/capability.h> in the kernel source"
2645 msgstr "カーネルソース内の I<include/linux/capability.h>"
2648 #: build/C/man2/capget.2:11
2654 #: build/C/man2/capget.2:11
2660 #: build/C/man2/capget.2:14
2661 msgid "capget, capset - set/get capabilities of thread(s)"
2662 msgstr "capget, capset - スレッドのケーパビリティを設定/取得する"
2665 #: build/C/man2/capget.2:16
2666 msgid "B<#include E<lt>sys/capability.hE<gt>>"
2667 msgstr "B<#include E<lt>sys/capability.hE<gt>>"
2670 #: build/C/man2/capget.2:18
2672 "B<int capget(cap_user_header_t >I<hdrp>B<, cap_user_data_t >I<datap>B<);>"
2674 "B<int capget(cap_user_header_t >I<hdrp>B<, cap_user_data_t >I<datap>B<);>"
2677 #: build/C/man2/capget.2:20
2679 "B<int capset(cap_user_header_t >I<hdrp>B<, const cap_user_data_t "
2682 "B<int capset(cap_user_header_t >I<hdrp>B<, const cap_user_data_t "
2686 #: build/C/man2/capget.2:31
2688 "As of Linux 2.2, the power of the superuser (root) has been partitioned into "
2689 "a set of discrete capabilities. Each thread has a set of effective "
2690 "capabilities identifying which capabilities (if any) it may currently "
2691 "exercise. Each thread also has a set of inheritable capabilities that may "
2692 "be passed through an B<execve>(2) call, and a set of permitted capabilities "
2693 "that it can make effective or inheritable."
2695 "Linux 2.2 で、スーパーユーザー (root) の権限は、個別のケーパビリティ "
2696 "(capabilities) へと分割され、その集合として表現されるようになった。 各スレッ"
2697 "ドは「実効ケーパビリティ (effective capability) の集合」を持ち、 それによって"
2698 "現在どの操作が実行可能かを識別できる。 また、各スレッドは、 「継承可能ケーパ"
2699 "ビリティ (inheritable capability) の集合」と 「許可ケーパビリティ (permitted "
2700 "capability) の集合」を持つ。 「継承可能ケーパビリティの集合」は B<execve>"
2701 "(2) を通じて渡すことができるケーパビリティの集合であり、 「許可ケーパビリ"
2702 "ティ (permitted capability) の集合」は 実効ケーパビリティや継承可能ケーパビリ"
2703 "ティとして有効にできる ケーパビリティを規定するものである。"
2706 #: build/C/man2/capget.2:40
2708 "These two functions are the raw kernel interface for getting and setting "
2709 "thread capabilities. Not only are these system calls specific to Linux, but "
2710 "the kernel API is likely to change and use of these functions (in particular "
2711 "the format of the I<cap_user_*_t> types) is subject to extension with each "
2712 "kernel revision, but old programs will keep working."
2714 "この二つの関数はスレッドのケーパビリティを取得したり設定したりするための 生の"
2715 "カーネルインターフェースである。 これらのシステムコールは Linux 特有であると"
2716 "いうだけでなく、 カーネル API は変更されるかもしれず、これらの 関数の使用法 "
2717 "(特に I<cap_user_*_t> 型という書式) はカーネルのリビジョン毎に拡張されるかも"
2718 "しれないが、 以前のプログラムはそのまま動作する。"
2721 #: build/C/man2/capget.2:51
2723 "The portable interfaces are B<cap_set_proc>(3) and B<cap_get_proc>(3); if "
2724 "possible you should use those interfaces in applications. If you wish to "
2725 "use the Linux extensions in applications, you should use the easier-to-use "
2726 "interfaces B<capsetp>(3) and B<capgetp>(3)."
2728 "移植性のあるインターフェースは B<cap_set_proc>(3) と B<cap_get_proc>(3) で"
2729 "ある。 可能ならばアプリケーションはこれらの関数を使用すべきである。 アプリ"
2730 "ケーションに Linux 拡張を使用したい場合には、より簡単に 使えるインターフェー"
2731 "スである B<capsetp>(3) と B<capgetp>(3) を使用すべきである。"
2734 #: build/C/man2/capget.2:51
2736 msgid "Current details"
2740 #: build/C/man2/capget.2:54
2742 "Now that you have been warned, some current kernel details. The structures "
2743 "are defined as follows."
2745 "現在のカーネルの詳細について注意を述べておく。 構造体は以下のように定義され"
2749 #: build/C/man2/capget.2:59
2752 "#define _LINUX_CAPABILITY_VERSION_1 0x19980330\n"
2753 "#define _LINUX_CAPABILITY_U32S_1 1\n"
2755 "#define _LINUX_CAPABILITY_VERSION_1 0x19980330\n"
2756 "#define _LINUX_CAPABILITY_U32S_1 1\n"
2759 #: build/C/man2/capget.2:62
2762 "#define _LINUX_CAPABILITY_VERSION_2 0x20071026\n"
2763 "#define _LINUX_CAPABILITY_U32S_2 2\n"
2765 "#define _LINUX_CAPABILITY_VERSION_2 0x20071026\n"
2766 "#define _LINUX_CAPABILITY_U32S_2 2\n"
2769 #: build/C/man2/capget.2:67
2772 "typedef struct __user_cap_header_struct {\n"
2775 "} *cap_user_header_t;\n"
2777 "typedef struct __user_cap_header_struct {\n"
2780 "} *cap_user_header_t;\n"
2783 #: build/C/man2/capget.2:73
2786 "typedef struct __user_cap_data_struct {\n"
2787 " __u32 effective;\n"
2788 " __u32 permitted;\n"
2789 " __u32 inheritable;\n"
2790 "} *cap_user_data_t;\n"
2792 "typedef struct __user_cap_data_struct {\n"
2793 " __u32 effective;\n"
2794 " __u32 permitted;\n"
2795 " __u32 inheritable;\n"
2796 "} *cap_user_data_t;\n"
2799 #: build/C/man2/capget.2:88
2801 "I<effective, permitted, inheritable> are bitmasks of the capabilities "
2802 "defined in I<capability(7).> Note the I<CAP_*> values are bit indexes and "
2803 "need to be bit-shifted before ORing into the bit fields. To define the "
2804 "structures for passing to the system call you have to use the I<struct "
2805 "__user_cap_header_struct> and I<struct __user_cap_data_struct> names because "
2806 "the typedefs are only pointers."
2808 "I<effective, permitted, inheritable> は、 B<capability>(7) で定義されるケー"
2809 "パビリティのビットマスクである。 I<CAP_*> はビット番号を表すインデックス値で"
2810 "あり、 ビットフィールドに OR を行う前に I<CAP_*> の値の分だけビットシフトを行"
2811 "う必要がある。 typedef の方はポインタなので、 このシステムコールに渡す構造体"
2812 "を定義するには、 I<struct __user_cap_header_struct> と I<struct "
2813 "__user_cap_data_struct> という名前を使用しなければならない。"
2816 #: build/C/man2/capget.2:100
2818 "Kernels prior to 2.6.25 prefer 32-bit capabilities with version "
2819 "B<_LINUX_CAPABILITY_VERSION_1>, and kernels 2.6.25+ prefer 64-bit "
2820 "capabilities with version B<_LINUX_CAPABILITY_VERSION_2>. Note, 64-bit "
2821 "capabilities use I<datap>[0] and I<datap>[1], whereas 32-bit capabilities "
2822 "use only I<datap>[0]."
2824 "カーネル 2.6.25 より前では、バージョン B<_LINUX_CAPABILITY_VERSION_1> の 32 "
2825 "ビットケーパビリティが推奨である。 カーネル 2.6.25 以降では、バージョン "
2826 "B<_LINUX_CAPABILITY_VERSION_2> の 64 ビットケーパビリティが推奨である。 64 "
2827 "ビットケーパビリティでは I<datap>[0] と I<datap>[1] が使用されるのに対し、 "
2828 "32 ビットケーパビリティでは I<datap>[0] だけが使用される。"
2831 #: build/C/man2/capget.2:104
2833 "Another change affecting the behavior of these system calls is kernel "
2834 "support for file capabilities (VFS capability support). This support is "
2835 "currently a compile time option (added in kernel 2.6.24)."
2837 "これらのシステムコールの挙動に影響があるもう一つの変更点は、 ファイルケーパビ"
2838 "リティ (file capabilities) のカーネルによるサポート (VFS ケーパビリティのサ"
2839 "ポート) である。 VFS ケーパビリティのサポートは現在のところコンパイル時のオプ"
2840 "ションである (カーネル 2.6.24 で追加された)。"
2843 #: build/C/man2/capget.2:111
2845 "For B<capget>() calls, one can probe the capabilities of any process by "
2846 "specifying its process ID with the I<hdrp-E<gt>pid> field value."
2848 "B<capget>() では、 I<hdrp-E<gt>pid> のフィールド値にケーパビリティを知りたい"
2849 "プロセスのプロセス ID を 指定することで、任意のプロセスのケーパビリティを調べ"
2853 #: build/C/man2/capget.2:111
2855 msgid "With VFS Capability Support"
2856 msgstr "VFS ケーパビリティがサポートされている場合"
2859 #: build/C/man2/capget.2:123
2861 "VFS Capability support creates a file-attribute method for adding "
2862 "capabilities to privileged executables. This privilege model obsoletes "
2863 "kernel support for one process asynchronously setting the capabilities of "
2864 "another. That is, with VFS support, for B<capset>() calls the only "
2865 "permitted values for I<hdrp-E<gt>pid> are 0 or B<getpid>(2), which are "
2868 "VFS ケーパビリティのサポートでは、特権実行ファイルにケーパビリティを 追加する"
2869 "ためのファイル属性メソッドが作成された。 この特権モデルの導入により、あるプロ"
2870 "セスにより別のプロセスのケーパビリティ を非同期に設定する機能のカーネルによる"
2871 "サポートは廃止される。 つまり、VFS サポートでは、 B<capset>() を呼び出す際"
2872 "に I<hdrp-E<gt>pid> の値として許されるのは 0 と B<getpid>(2) が返す値だけと"
2873 "なる (どちらの値でも等価である)。"
2876 #: build/C/man2/capget.2:123
2878 msgid "Without VFS Capability Support"
2879 msgstr "VFS ケーパビリティがサポートされていない場合"
2882 #: build/C/man2/capget.2:149
2884 "When the kernel does not support VFS capabilities, B<capset>() calls can "
2885 "operate on the capabilities of the thread specified by the I<pid> field of "
2886 "I<hdrp> when that is nonzero, or on the capabilities of the calling thread "
2887 "if I<pid> is 0. If I<pid> refers to a single-threaded process, then I<pid> "
2888 "can be specified as a traditional process ID; operating on a thread of a "
2889 "multithreaded process requires a thread ID of the type returned by B<gettid>"
2890 "(2). For B<capset>(), I<pid> can also be: -1, meaning perform the change on "
2891 "all threads except the caller and B<init>(8); or a value less than -1, in "
2892 "which case the change is applied to all members of the process group whose "
2895 "カーネルが VFS ケーパビリティをサポートしていない場合、 I<hdrp> の I<pid> "
2896 "フィールドが 0 以外であれば、 B<capset>() の操作対象は I<pid> で指定されたス"
2897 "レッドのケーパビリティになる。 I<pid> が 0 の場合は呼び出し元のスレッドのケー"
2898 "パビリティが操作対象となる。 I<pid> がシングルスレッド・プロセスを参照してい"
2899 "る場合、 I<pid> は以前から使われているプロセスID を使って指定できる。 マルチ"
2900 "スレッド・プロセス内のあるスレッドを対象にする場合は、 B<gettid>(2) が返すス"
2901 "レッドID を用いて指定する必要がある。 また、 B<capset>() では -1 や -1 より"
2902 "小さな値を指定することもできる。 -1 は呼び出し元と B<init>(8) を除く全てのス"
2903 "レッドを対象として変更を行うことを、 -1 より小さな値は ID が -I<pid> のプロセ"
2904 "スグループの全メンバ を対象として変更を行うことを意味する。"
2907 #: build/C/man2/capget.2:152
2908 msgid "For details on the data, see B<capabilities>(7)."
2909 msgstr "このデータの詳細は B<capabilities>(7) を参照すること。"
2912 #: build/C/man2/capget.2:171
2914 "The calls will fail with the error B<EINVAL>, and set the I<version> field "
2915 "of I<hdrp> to the kernel preferred value of B<_LINUX_CAPABILITY_VERSION_?> "
2916 "when an unsupported I<version> value is specified. In this way, one can "
2917 "probe what the current preferred capability revision is."
2919 "I<hdrp> のフィールド I<version> にサポートされていない値が指定された場合、 呼"
2920 "び出しはエラー B<EINVAL> で失敗し、 I<version> にカーネル推奨の "
2921 "B<_LINUX_CAPABILITY_VERSION_?> を設定する。 このようにして、現在の推奨ケーパ"
2922 "ビリティ・リビジョンが何かを 調べることができる。"
2925 #: build/C/man2/capget.2:180
2927 "Bad memory address. I<hdrp> must not be NULL. I<datap> may be NULL only "
2928 "when the user is trying to determine the preferred capability version format "
2929 "supported by the kernel."
2931 "不正なメモリアドレス。 I<hdrp> は NULL であってはならない。 I<datap> に NULL "
2932 "を指定してよいのは、ユーザがカーネルがサポートしている 推奨のケーパビリティ・"
2933 "バージョンを判定しようとしているときだけである。"
2936 #: build/C/man2/capget.2:180 build/C/man7/cpuset.7:1179
2937 #: build/C/man7/cpuset.7:1188 build/C/man7/cpuset.7:1197
2938 #: build/C/man7/cpuset.7:1207 build/C/man7/cpuset.7:1216
2939 #: build/C/man7/cpuset.7:1223 build/C/man7/cpuset.7:1230
2940 #: build/C/man2/getgroups.2:114 build/C/man2/getgroups.2:121
2941 #: build/C/man2/getpriority.2:119 build/C/man2/getrlimit.2:440
2942 #: build/C/man2/getrusage.2:190 build/C/man2/iopl.2:71
2943 #: build/C/man2/ioprio_set.2:160 build/C/man2/setpgid.2:200
2949 #: build/C/man2/capget.2:183
2950 msgid "One of the arguments was invalid."
2951 msgstr "引き数のどれかが無効である。"
2954 #: build/C/man2/capget.2:188
2956 "An attempt was made to add a capability to the Permitted set, or to set a "
2957 "capability in the Effective or Inheritable sets that is not in the Permitted "
2960 "「許可ケーパビリティセット」にケーパビリティを追加しようとしているか、 もしく"
2961 "は「許可ケーパビリティセット」に含まれないケーパビリティを 「実効ケーパビリ"
2962 "ティセット」や「継承可能ケーパビリティセット」に セットしようとしている。"
2965 #: build/C/man2/capget.2:207
2967 "The caller attempted to use B<capset>() to modify the capabilities of a "
2968 "thread other than itself, but lacked sufficient privilege. For kernels "
2969 "supporting VFS capabilities, this is never permitted. For kernels lacking "
2970 "VFS support, the B<CAP_SETPCAP> capability is required. (A bug in kernels "
2971 "before 2.6.11 meant that this error could also occur if a thread without "
2972 "this capability tried to change its own capabilities by specifying the "
2973 "I<pid> field as a nonzero value (i.e., the value returned by B<getpid>(2)) "
2976 "呼び出し元が自分以外のスレッドのケーパビリティを B<capset>() を使って修正し"
2977 "ようとしたが、十分な特権がなかった。 VFS ケーパビリティをサポートしているカー"
2978 "ネルでは、 この操作が許可されることは決してない。 VFS ケーパビリティをサポー"
2979 "トしていないカーネルでは、 B<CAP_SETPCAP> ケーパビリティが必要である。 (バー"
2980 "ジョン 2.6.11 より前のカーネルには、 このケーパビリティを持たないスレッドが "
2981 "I<pid> フィールドに 0 でない値 (つまり、0 の代わりに B<getpid>(2) が返す値) "
2982 "を指定して自分自身のケーパビリティを変更しようとした場合にも、 このエラーが発"
2986 #: build/C/man2/capget.2:207 build/C/man7/cpuset.7:1329
2987 #: build/C/man2/getpriority.2:127 build/C/man2/getrlimit.2:464
2988 #: build/C/man2/getsid.2:69 build/C/man2/ioprio_set.2:177
2989 #: build/C/man2/setpgid.2:215
2995 #: build/C/man2/capget.2:210
2996 msgid "No such thread."
2997 msgstr "そのようなスレッドが存在しない。"
3000 #: build/C/man2/capget.2:212 build/C/man2/ioprio_set.2:188
3001 msgid "These system calls are Linux-specific."
3002 msgstr "これらのシステムコールは Linux 独自である。"
3005 #: build/C/man2/capget.2:217
3007 "The portable interface to the capability querying and setting functions is "
3008 "provided by the I<libcap> library and is available here:"
3010 "ケーパビリティを設定したり取得したりする機能のための移植性ある インターフェー"
3011 "スは I<libcap> ライブラリによって提供される。 このライブラリは以下から入手で"
3015 #: build/C/man2/capget.2:219
3016 msgid "http://www.kernel.org/pub/linux/libs/security/linux-privs"
3017 msgstr "http://www.kernel.org/pub/linux/libs/security/linux-privs"
3020 #: build/C/man2/capget.2:223
3021 msgid "B<clone>(2), B<gettid>(2), B<capabilities>(7)"
3022 msgstr "B<clone>(2), B<gettid>(2), B<capabilities>(7)"
3025 #: build/C/man7/cpuset.7:24
3031 #: build/C/man7/cpuset.7:24
3037 #: build/C/man7/cpuset.7:27
3038 msgid "cpuset - confine processes to processor and memory node subsets"
3039 msgstr "cpuset - confine processes to processor and memory node subsets"
3042 #: build/C/man7/cpuset.7:34
3044 "The cpuset file system is a pseudo-file-system interface to the kernel "
3045 "cpuset mechanism, which is used to control the processor placement and "
3046 "memory placement of processes. It is commonly mounted at I</dev/cpuset>."
3048 "The cpuset file system is a pseudo-file-system interface to the kernel "
3049 "cpuset mechanism, which is used to control the processor placement and "
3050 "memory placement of processes. It is commonly mounted at I</dev/cpuset>."
3053 #: build/C/man7/cpuset.7:51
3055 "On systems with kernels compiled with built in support for cpusets, all "
3056 "processes are attached to a cpuset, and cpusets are always present. If a "
3057 "system supports cpusets, then it will have the entry B<nodev cpuset> in the "
3058 "file I</proc/filesystems>. By mounting the cpuset file system (see the "
3059 "B<EXAMPLE> section below), the administrator can configure the cpusets on a "
3060 "system to control the processor and memory placement of processes on that "
3061 "system. By default, if the cpuset configuration on a system is not modified "
3062 "or if the cpuset file system is not even mounted, then the cpuset mechanism, "
3063 "though present, has no affect on the system's behavior."
3065 "On systems with kernels compiled with built in support for cpusets, all "
3066 "processes are attached to a cpuset, and cpusets are always present. If a "
3067 "system supports cpusets, then it will have the entry B<nodev cpuset> in the "
3068 "file I</proc/filesystems>. By mounting the cpuset file system (see the "
3069 "B<EXAMPLE> section below), the administrator can configure the cpusets on a "
3070 "system to control the processor and memory placement of processes on that "
3071 "system. By default, if the cpuset configuration on a system is not modified "
3072 "or if the cpuset file system is not even mounted, then the cpuset mechanism, "
3073 "though present, has no affect on the system's behavior."
3076 #: build/C/man7/cpuset.7:53
3077 msgid "A cpuset defines a list of CPUs and memory nodes."
3078 msgstr "A cpuset defines a list of CPUs and memory nodes."
3081 #: build/C/man7/cpuset.7:62
3083 "The CPUs of a system include all the logical processing units on which a "
3084 "process can execute, including, if present, multiple processor cores within "
3085 "a package and Hyper-Threads within a processor core. Memory nodes include "
3086 "all distinct banks of main memory; small and SMP systems typically have just "
3087 "one memory node that contains all the system's main memory, while NUMA (non-"
3088 "uniform memory access) systems have multiple memory nodes."
3090 "The CPUs of a system include all the logical processing units on which a "
3091 "process can execute, including, if present, multiple processor cores within "
3092 "a package and Hyper-Threads within a processor core. Memory nodes include "
3093 "all distinct banks of main memory; small and SMP systems typically have just "
3094 "one memory node that contains all the system's main memory, while NUMA (non-"
3095 "uniform memory access) systems have multiple memory nodes."
3098 #: build/C/man7/cpuset.7:72
3100 "Cpusets are represented as directories in a hierarchical pseudo-file system, "
3101 "where the top directory in the hierarchy (I</dev/cpuset>) represents the "
3102 "entire system (all online CPUs and memory nodes) and any cpuset that is the "
3103 "child (descendant) of another parent cpuset contains a subset of that "
3104 "parent's CPUs and memory nodes. The directories and files representing "
3105 "cpusets have normal file-system permissions."
3107 "Cpusets are represented as directories in a hierarchical pseudo-file system, "
3108 "where the top directory in the hierarchy (I</dev/cpuset>) represents the "
3109 "entire system (all online CPUs and memory nodes) and any cpuset that is the "
3110 "child (descendant) of another parent cpuset contains a subset of that "
3111 "parent's CPUs and memory nodes. The directories and files representing "
3112 "cpusets have normal file-system permissions."
3115 #: build/C/man7/cpuset.7:83
3117 "Every process in the system belongs to exactly one cpuset. A process is "
3118 "confined to only run on the CPUs in the cpuset it belongs to, and to "
3119 "allocate memory only on the memory nodes in that cpuset. When a process "
3120 "B<fork>(2)s, the child process is placed in the same cpuset as its parent. "
3121 "With sufficient privilege, a process may be moved from one cpuset to another "
3122 "and the allowed CPUs and memory nodes of an existing cpuset may be changed."
3124 "Every process in the system belongs to exactly one cpuset. A process is "
3125 "confined to only run on the CPUs in the cpuset it belongs to, and to "
3126 "allocate memory only on the memory nodes in that cpuset. When a process "
3127 "B<fork>(2)s, the child process is placed in the same cpuset as its parent. "
3128 "With sufficient privilege, a process may be moved from one cpuset to another "
3129 "and the allowed CPUs and memory nodes of an existing cpuset may be changed."
3132 #: build/C/man7/cpuset.7:91
3134 "When the system begins booting, a single cpuset is defined that includes all "
3135 "CPUs and memory nodes on the system, and all processes are in that cpuset. "
3136 "During the boot process, or later during normal system operation, other "
3137 "cpusets may be created, as subdirectories of this top cpuset, under the "
3138 "control of the system administrator, and processes may be placed in these "
3141 "When the system begins booting, a single cpuset is defined that includes all "
3142 "CPUs and memory nodes on the system, and all processes are in that cpuset. "
3143 "During the boot process, or later during normal system operation, other "
3144 "cpusets may be created, as subdirectories of this top cpuset, under the "
3145 "control of the system administrator, and processes may be placed in these "
3149 #: build/C/man7/cpuset.7:113
3151 "Cpusets are integrated with the B<sched_setaffinity>(2) scheduling affinity "
3152 "mechanism and the B<mbind>(2) and B<set_mempolicy>(2) memory-placement "
3153 "mechanisms in the kernel. Neither of these mechanisms let a process make "
3154 "use of a CPU or memory node that is not allowed by that process's cpuset. "
3155 "If changes to a process's cpuset placement conflict with these other "
3156 "mechanisms, then cpuset placement is enforced even if it means overriding "
3157 "these other mechanisms. The kernel accomplishes this overriding by silently "
3158 "restricting the CPUs and memory nodes requested by these other mechanisms to "
3159 "those allowed by the invoking process's cpuset. This can result in these "
3160 "other calls returning an error, if for example, such a call ends up "
3161 "requesting an empty set of CPUs or memory nodes, after that request is "
3162 "restricted to the invoking process's cpuset."
3164 "Cpusets are integrated with the B<sched_setaffinity>(2) scheduling affinity "
3165 "mechanism and the B<mbind>(2) and B<set_mempolicy>(2) memory-placement "
3166 "mechanisms in the kernel. Neither of these mechanisms let a process make "
3167 "use of a CPU or memory node that is not allowed by that process's cpuset. "
3168 "If changes to a process's cpuset placement conflict with these other "
3169 "mechanisms, then cpuset placement is enforced even if it means overriding "
3170 "these other mechanisms. The kernel accomplishes this overriding by silently "
3171 "restricting the CPUs and memory nodes requested by these other mechanisms to "
3172 "those allowed by the invoking process's cpuset. This can result in these "
3173 "other calls returning an error, if for example, such a call ends up "
3174 "requesting an empty set of CPUs or memory nodes, after that request is "
3175 "restricted to the invoking process's cpuset."
3178 #: build/C/man7/cpuset.7:119
3180 "Typically, a cpuset is used to manage the CPU and memory-node confinement "
3181 "for a set of cooperating processes such as a batch scheduler job, and these "
3182 "other mechanisms are used to manage the placement of individual processes or "
3183 "memory regions within that set or job."
3185 "Typically, a cpuset is used to manage the CPU and memory-node confinement "
3186 "for a set of cooperating processes such as a batch scheduler job, and these "
3187 "other mechanisms are used to manage the placement of individual processes or "
3188 "memory regions within that set or job."
3191 #: build/C/man7/cpuset.7:119
3197 #: build/C/man7/cpuset.7:124
3199 "Each directory below I</dev/cpuset> represents a cpuset and contains a fixed "
3200 "set of pseudo-files describing the state of that cpuset."
3202 "Each directory below I</dev/cpuset> represents a cpuset and contains a fixed "
3203 "set of pseudo-files describing the state of that cpuset."
3206 #: build/C/man7/cpuset.7:134
3208 "New cpusets are created using the B<mkdir>(2) system call or the B<mkdir>"
3209 "(1) command. The properties of a cpuset, such as its flags, allowed CPUs "
3210 "and memory nodes, and attached processes, are queried and modified by "
3211 "reading or writing to the appropriate file in that cpuset's directory, as "
3214 "New cpusets are created using the B<mkdir>(2) system call or the B<mkdir>"
3215 "(1) command. The properties of a cpuset, such as its flags, allowed CPUs "
3216 "and memory nodes, and attached processes, are queried and modified by "
3217 "reading or writing to the appropriate file in that cpuset's directory, as "
3221 #: build/C/man7/cpuset.7:140
3223 "The pseudo-files in each cpuset directory are automatically created when the "
3224 "cpuset is created, as a result of the B<mkdir>(2) invocation. It is not "
3225 "possible to directly add or remove these pseudo-files."
3227 "The pseudo-files in each cpuset directory are automatically created when the "
3228 "cpuset is created, as a result of the B<mkdir>(2) invocation. It is not "
3229 "possible to directly add or remove these pseudo-files."
3232 #: build/C/man7/cpuset.7:148
3234 "A cpuset directory that contains no child cpuset directories, and has no "
3235 "attached processes, can be removed using B<rmdir>(2) or B<rmdir>(1). It is "
3236 "not necessary, or possible, to remove the pseudo-files inside the directory "
3237 "before removing it."
3239 "A cpuset directory that contains no child cpuset directories, and has no "
3240 "attached processes, can be removed using B<rmdir>(2) or B<rmdir>(1). It is "
3241 "not necessary, or possible, to remove the pseudo-files inside the directory "
3242 "before removing it."
3245 #: build/C/man7/cpuset.7:162
3247 "The pseudo-files in each cpuset directory are small text files that may be "
3248 "read and written using traditional shell utilities such as B<cat>(1), and "
3249 "B<echo>(1), or from a program by using file I/O library functions or system "
3250 "calls, such as B<open>(2), B<read>(2), B<write>(2), and B<close>(2)."
3252 "The pseudo-files in each cpuset directory are small text files that may be "
3253 "read and written using traditional shell utilities such as B<cat>(1), and "
3254 "B<echo>(1), or from a program by using file I/O library functions or system "
3255 "calls, such as B<open>(2), B<read>(2), B<write>(2), and B<close>(2)."
3257 #. ====================== tasks ======================
3259 #: build/C/man7/cpuset.7:167
3261 "The pseudo-files in a cpuset directory represent internal kernel state and "
3262 "do not have any persistent image on disk. Each of these per-cpuset files is "
3263 "listed and described below."
3265 "The pseudo-files in a cpuset directory represent internal kernel state and "
3266 "do not have any persistent image on disk. Each of these per-cpuset files is "
3267 "listed and described below."
3270 #: build/C/man7/cpuset.7:167
3276 #: build/C/man7/cpuset.7:177
3278 "List of the process IDs (PIDs) of the processes in that cpuset. The list is "
3279 "formatted as a series of ASCII decimal numbers, each followed by a newline. "
3280 "A process may be added to a cpuset (automatically removing it from the "
3281 "cpuset that previously contained it) by writing its PID to that cpuset's "
3282 "I<tasks> file (with or without a trailing newline.)"
3284 "List of the process IDs (PIDs) of the processes in that cpuset. The list is "
3285 "formatted as a series of ASCII decimal numbers, each followed by a newline. "
3286 "A process may be added to a cpuset (automatically removing it from the "
3287 "cpuset that previously contained it) by writing its PID to that cpuset's "
3288 "I<tasks> file (with or without a trailing newline.)"
3290 #. =================== notify_on_release ===================
3292 #: build/C/man7/cpuset.7:185
3294 "B<Warning:> only one PID may be written to the I<tasks> file at a time. If "
3295 "a string is written that contains more than one PID, only the first one will "
3298 "B<Warning:> only one PID may be written to the I<tasks> file at a time. If "
3299 "a string is written that contains more than one PID, only the first one will "
3303 #: build/C/man7/cpuset.7:185
3305 msgid "I<notify_on_release>"
3306 msgstr "I<notify_on_release>"
3308 #. ====================== cpus ======================
3310 #: build/C/man7/cpuset.7:194
3312 "Flag (0 or 1). If set (1), that cpuset will receive special handling after "
3313 "it is released, that is, after all processes cease using it (i.e., terminate "
3314 "or are moved to a different cpuset) and all child cpuset directories have "
3315 "been removed. See the B<Notify On Release> section, below."
3317 "Flag (0 or 1). If set (1), that cpuset will receive special handling after "
3318 "it is released, that is, after all processes cease using it (i.e., terminate "
3319 "or are moved to a different cpuset) and all child cpuset directories have "
3320 "been removed. See the B<Notify On Release> section, below."
3323 #: build/C/man7/cpuset.7:194
3329 #: build/C/man7/cpuset.7:201
3331 "List of the physical numbers of the CPUs on which processes in that cpuset "
3332 "are allowed to execute. See B<List Format> below for a description of the "
3333 "format of I<cpus>."
3335 "List of the physical numbers of the CPUs on which processes in that cpuset "
3336 "are allowed to execute. See B<List Format> below for a description of the "
3337 "format of I<cpus>."
3339 #. ==================== cpu_exclusive ====================
3341 #: build/C/man7/cpuset.7:207
3343 "The CPUs allowed to a cpuset may be changed by writing a new list to its "
3346 "The CPUs allowed to a cpuset may be changed by writing a new list to its "
3350 #: build/C/man7/cpuset.7:207
3352 msgid "I<cpu_exclusive>"
3353 msgstr "I<cpu_exclusive>"
3356 #: build/C/man7/cpuset.7:214
3358 "Flag (0 or 1). If set (1), the cpuset has exclusive use of its CPUs (no "
3359 "sibling or cousin cpuset may overlap CPUs). By default this is off (0). "
3360 "Newly created cpusets also initially default this to off (0)."
3362 "Flag (0 or 1). If set (1), the cpuset has exclusive use of its CPUs (no "
3363 "sibling or cousin cpuset may overlap CPUs). By default this is off (0). "
3364 "Newly created cpusets also initially default this to off (0)."
3366 #. ====================== mems ======================
3368 #: build/C/man7/cpuset.7:236
3370 "Two cpusets are I<sibling> cpusets if they share the same parent cpuset in "
3371 "the I</dev/cpuset> hierarchy. Two cpusets are I<cousin> cpusets if neither "
3372 "is the ancestor of the other. Regardless of the I<cpu_exclusive> setting, "
3373 "if one cpuset is the ancestor of another, and if both of these cpusets have "
3374 "nonempty I<cpus>, then their I<cpus> must overlap, because the I<cpus> of "
3375 "any cpuset are always a subset of the I<cpus> of its parent cpuset."
3377 "Two cpusets are I<sibling> cpusets if they share the same parent cpuset in "
3378 "the I</dev/cpuset> hierarchy. Two cpusets are I<cousin> cpusets if neither "
3379 "is the ancestor of the other. Regardless of the I<cpu_exclusive> setting, "
3380 "if one cpuset is the ancestor of another, and if both of these cpusets have "
3381 "nonempty I<cpus>, then their I<cpus> must overlap, because the I<cpus> of "
3382 "any cpuset are always a subset of the I<cpus> of its parent cpuset."
3385 #: build/C/man7/cpuset.7:236
3390 #. ==================== mem_exclusive ====================
3392 #: build/C/man7/cpuset.7:244
3394 "List of memory nodes on which processes in this cpuset are allowed to "
3395 "allocate memory. See B<List Format> below for a description of the format "
3398 "List of memory nodes on which processes in this cpuset are allowed to "
3399 "allocate memory. See B<List Format> below for a description of the format "
3403 #: build/C/man7/cpuset.7:244
3405 msgid "I<mem_exclusive>"
3406 msgstr "I<mem_exclusive>"
3409 #: build/C/man7/cpuset.7:252
3411 "Flag (0 or 1). If set (1), the cpuset has exclusive use of its memory nodes "
3412 "(no sibling or cousin may overlap). Also if set (1), the cpuset is a "
3413 "B<Hardwall> cpuset (see below.) By default this is off (0). Newly created "
3414 "cpusets also initially default this to off (0)."
3416 "Flag (0 or 1). If set (1), the cpuset has exclusive use of its memory nodes "
3417 "(no sibling or cousin may overlap). Also if set (1), the cpuset is a "
3418 "B<Hardwall> cpuset (see below.) By default this is off (0). Newly created "
3419 "cpusets also initially default this to off (0)."
3421 #. ==================== mem_hardwall ====================
3423 #: build/C/man7/cpuset.7:260
3425 "Regardless of the I<mem_exclusive> setting, if one cpuset is the ancestor of "
3426 "another, then their memory nodes must overlap, because the memory nodes of "
3427 "any cpuset are always a subset of the memory nodes of that cpuset's parent "
3430 "Regardless of the I<mem_exclusive> setting, if one cpuset is the ancestor of "
3431 "another, then their memory nodes must overlap, because the memory nodes of "
3432 "any cpuset are always a subset of the memory nodes of that cpuset's parent "
3436 #: build/C/man7/cpuset.7:260
3438 msgid "I<mem_hardwall> (since Linux 2.6.26)"
3439 msgstr "I<mem_hardwall> (since Linux 2.6.26)"
3441 #. ==================== memory_migrate ====================
3443 #: build/C/man7/cpuset.7:271
3445 "Flag (0 or 1). If set (1), the cpuset is a B<Hardwall> cpuset (see below.) "
3446 "Unlike B<mem_exclusive>, there is no constraint on whether cpusets marked "
3447 "B<mem_hardwall> may have overlapping memory nodes with sibling or cousin "
3448 "cpusets. By default this is off (0). Newly created cpusets also initially "
3449 "default this to off (0)."
3451 "Flag (0 or 1). If set (1), the cpuset is a B<Hardwall> cpuset (see below.) "
3452 "Unlike B<mem_exclusive>, there is no constraint on whether cpusets marked "
3453 "B<mem_hardwall> may have overlapping memory nodes with sibling or cousin "
3454 "cpusets. By default this is off (0). Newly created cpusets also initially "
3455 "default this to off (0)."
3458 #: build/C/man7/cpuset.7:271
3460 msgid "I<memory_migrate> (since Linux 2.6.16)"
3461 msgstr "I<memory_migrate> (since Linux 2.6.16)"
3463 #. ==================== memory_pressure ====================
3465 #: build/C/man7/cpuset.7:278
3467 "Flag (0 or 1). If set (1), then memory migration is enabled. By default "
3468 "this is off (0). See the B<Memory Migration> section, below."
3470 "Flag (0 or 1). If set (1), then memory migration is enabled. By default "
3471 "this is off (0). See the B<Memory Migration> section, below."
3474 #: build/C/man7/cpuset.7:278
3476 msgid "I<memory_pressure> (since Linux 2.6.16)"
3477 msgstr "I<memory_pressure> (since Linux 2.6.16)"
3479 #. ================= memory_pressure_enabled =================
3481 #: build/C/man7/cpuset.7:291
3483 "A measure of how much memory pressure the processes in this cpuset are "
3484 "causing. See the B<Memory Pressure> section, below. Unless "
3485 "I<memory_pressure_enabled> is enabled, always has value zero (0). This file "
3486 "is read-only. See the B<WARNINGS> section, below."
3488 "A measure of how much memory pressure the processes in this cpuset are "
3489 "causing. See the B<Memory Pressure> section, below. Unless "
3490 "I<memory_pressure_enabled> is enabled, always has value zero (0). This file "
3491 "is read-only. See the B<WARNINGS> section, below."
3494 #: build/C/man7/cpuset.7:291
3496 msgid "I<memory_pressure_enabled> (since Linux 2.6.16)"
3497 msgstr "I<memory_pressure_enabled> (since Linux 2.6.16)"
3499 #. ================== memory_spread_page ==================
3501 #: build/C/man7/cpuset.7:303
3503 "Flag (0 or 1). This file is only present in the root cpuset, normally I</"
3504 "dev/cpuset>. If set (1), the I<memory_pressure> calculations are enabled "
3505 "for all cpusets in the system. By default this is off (0). See the "
3506 "B<Memory Pressure> section, below."
3508 "Flag (0 or 1). This file is only present in the root cpuset, normally I</"
3509 "dev/cpuset>. If set (1), the I<memory_pressure> calculations are enabled "
3510 "for all cpusets in the system. By default this is off (0). See the "
3511 "B<Memory Pressure> section, below."
3514 #: build/C/man7/cpuset.7:303
3516 msgid "I<memory_spread_page> (since Linux 2.6.17)"
3517 msgstr "I<memory_spread_page> (since Linux 2.6.17)"
3519 #. ================== memory_spread_slab ==================
3521 #: build/C/man7/cpuset.7:313
3523 "Flag (0 or 1). If set (1), pages in the kernel page cache (file-system "
3524 "buffers) are uniformly spread across the cpuset. By default this is off (0) "
3525 "in the top cpuset, and inherited from the parent cpuset in newly created "
3526 "cpusets. See the B<Memory Spread> section, below."
3528 "Flag (0 or 1). If set (1), pages in the kernel page cache (file-system "
3529 "buffers) are uniformly spread across the cpuset. By default this is off (0) "
3530 "in the top cpuset, and inherited from the parent cpuset in newly created "
3531 "cpusets. See the B<Memory Spread> section, below."
3534 #: build/C/man7/cpuset.7:313
3536 msgid "I<memory_spread_slab> (since Linux 2.6.17)"
3537 msgstr "I<memory_spread_slab> (since Linux 2.6.17)"
3539 #. ================== sched_load_balance ==================
3541 #: build/C/man7/cpuset.7:324
3543 "Flag (0 or 1). If set (1), the kernel slab caches for file I/O (directory "
3544 "and inode structures) are uniformly spread across the cpuset. By default "
3545 "this is off (0) in the top cpuset, and inherited from the parent cpuset in "
3546 "newly created cpusets. See the B<Memory Spread> section, below."
3548 "Flag (0 or 1). If set (1), the kernel slab caches for file I/O (directory "
3549 "and inode structures) are uniformly spread across the cpuset. By default "
3550 "this is off (0) in the top cpuset, and inherited from the parent cpuset in "
3551 "newly created cpusets. See the B<Memory Spread> section, below."
3554 #: build/C/man7/cpuset.7:324
3556 msgid "I<sched_load_balance> (since Linux 2.6.24)"
3557 msgstr "I<sched_load_balance> (since Linux 2.6.24)"
3559 #. ================== sched_relax_domain_level ==================
3561 #: build/C/man7/cpuset.7:338
3563 "Flag (0 or 1). If set (1, the default) the kernel will automatically load "
3564 "balance processes in that cpuset over the allowed CPUs in that cpuset. If "
3565 "cleared (0) the kernel will avoid load balancing processes in this cpuset, "
3566 "I<unless> some other cpuset with overlapping CPUs has its "
3567 "I<sched_load_balance> flag set. See B<Scheduler Load Balancing>, below, for "
3570 "Flag (0 or 1). If set (1, the default) the kernel will automatically load "
3571 "balance processes in that cpuset over the allowed CPUs in that cpuset. If "
3572 "cleared (0) the kernel will avoid load balancing processes in this cpuset, "
3573 "I<unless> some other cpuset with overlapping CPUs has its "
3574 "I<sched_load_balance> flag set. See B<Scheduler Load Balancing>, below, for "
3578 #: build/C/man7/cpuset.7:338
3580 msgid "I<sched_relax_domain_level> (since Linux 2.6.26)"
3581 msgstr "I<sched_relax_domain_level> (since Linux 2.6.26)"
3583 #. ================== proc cpuset ==================
3585 #: build/C/man7/cpuset.7:358
3587 "Integer, between -1 and a small positive value. The "
3588 "I<sched_relax_domain_level> controls the width of the range of CPUs over "
3589 "which the kernel scheduler performs immediate rebalancing of runnable tasks "
3590 "across CPUs. If I<sched_load_balance> is disabled, then the setting of "
3591 "I<sched_relax_domain_level> does not matter, as no such load balancing is "
3592 "done. If I<sched_load_balance> is enabled, then the higher the value of the "
3593 "I<sched_relax_domain_level>, the wider the range of CPUs over which "
3594 "immediate load balancing is attempted. See B<Scheduler Relax Domain Level>, "
3595 "below, for further details."
3597 "Integer, between -1 and a small positive value. The "
3598 "I<sched_relax_domain_level> controls the width of the range of CPUs over "
3599 "which the kernel scheduler performs immediate rebalancing of runnable tasks "
3600 "across CPUs. If I<sched_load_balance> is disabled, then the setting of "
3601 "I<sched_relax_domain_level> does not matter, as no such load balancing is "
3602 "done. If I<sched_load_balance> is enabled, then the higher the value of the "
3603 "I<sched_relax_domain_level>, the wider the range of CPUs over which "
3604 "immediate load balancing is attempted. See B<Scheduler Relax Domain Level>, "
3605 "below, for further details."
3607 #. ================== proc status ==================
3609 #: build/C/man7/cpuset.7:366
3611 "In addition to the above pseudo-files in each directory below I</dev/"
3612 "cpuset>, each process has a pseudo-file, I</proc/E<lt>pidE<gt>/cpuset>, that "
3613 "displays the path of the process's cpuset directory relative to the root of "
3614 "the cpuset file system."
3616 "In addition to the above pseudo-files in each directory below I</dev/"
3617 "cpuset>, each process has a pseudo-file, I</proc/E<lt>pidE<gt>/cpuset>, that "
3618 "displays the path of the process's cpuset directory relative to the root of "
3619 "the cpuset file system."
3622 #: build/C/man7/cpuset.7:377
3624 "Also the I</proc/E<lt>pidE<gt>/status> file for each process has four added "
3625 "lines, displaying the process's I<Cpus_allowed> (on which CPUs it may be "
3626 "scheduled) and I<Mems_allowed> (on which memory nodes it may obtain memory), "
3627 "in the two formats B<Mask Format> and B<List Format> (see below) as shown "
3628 "in the following example:"
3630 "Also the I</proc/E<lt>pidE<gt>/status> file for each process has four added "
3631 "lines, displaying the process's I<Cpus_allowed> (on which CPUs it may be "
3632 "scheduled) and I<Mems_allowed> (on which memory nodes it may obtain memory), "
3633 "in the two formats B<Mask Format> and B<List Format> (see below) as shown "
3634 "in the following example:"
3637 #: build/C/man7/cpuset.7:384
3640 "Cpus_allowed: ffffffff,ffffffff,ffffffff,ffffffff\n"
3641 "Cpus_allowed_list: 0-127\n"
3642 "Mems_allowed: ffffffff,ffffffff\n"
3643 "Mems_allowed_list: 0-63\n"
3645 "Cpus_allowed: ffffffff,ffffffff,ffffffff,ffffffff\n"
3646 "Cpus_allowed_list: 0-127\n"
3647 "Mems_allowed: ffffffff,ffffffff\n"
3648 "Mems_allowed_list: 0-63\n"
3650 #. ================== EXTENDED CAPABILITIES ==================
3652 #: build/C/man7/cpuset.7:390
3654 "The \"allowed\" fields were added in Linux 2.6.24; the \"allowed_list\" "
3655 "fields were added in Linux 2.6.26."
3657 "The \"allowed\" fields were added in Linux 2.6.24; the \"allowed_list\" "
3658 "fields were added in Linux 2.6.26."
3661 #: build/C/man7/cpuset.7:390
3663 msgid "EXTENDED CAPABILITIES"
3664 msgstr "EXTENDED CAPABILITIES"
3666 #. ================== Exclusive Cpusets ==================
3668 #: build/C/man7/cpuset.7:398
3670 "In addition to controlling which I<cpus> and I<mems> a process is allowed to "
3671 "use, cpusets provide the following extended capabilities."
3673 "In addition to controlling which I<cpus> and I<mems> a process is allowed to "
3674 "use, cpusets provide the following extended capabilities."
3677 #: build/C/man7/cpuset.7:398
3679 msgid "Exclusive Cpusets"
3680 msgstr "Exclusive Cpusets"
3683 #: build/C/man7/cpuset.7:405
3685 "If a cpuset is marked I<cpu_exclusive> or I<mem_exclusive>, no other cpuset, "
3686 "other than a direct ancestor or descendant, may share any of the same CPUs "
3689 "If a cpuset is marked I<cpu_exclusive> or I<mem_exclusive>, no other cpuset, "
3690 "other than a direct ancestor or descendant, may share any of the same CPUs "
3693 #. ================== Hardwall ==================
3695 #: build/C/man7/cpuset.7:431
3697 "A cpuset that is I<mem_exclusive> restricts kernel allocations for buffer "
3698 "cache pages and other internal kernel data pages commonly shared by the "
3699 "kernel across multiple users. All cpusets, whether I<mem_exclusive> or not, "
3700 "restrict allocations of memory for user space. This enables configuring a "
3701 "system so that several independent jobs can share common kernel data, while "
3702 "isolating each job's user allocation in its own cpuset. To do this, "
3703 "construct a large I<mem_exclusive> cpuset to hold all the jobs, and "
3704 "construct child, non-I<mem_exclusive> cpusets for each individual job. Only "
3705 "a small amount of kernel memory, such as requests from interrupt handlers, "
3706 "is allowed to be placed on memory nodes outside even a I<mem_exclusive> "
3709 "A cpuset that is I<mem_exclusive> restricts kernel allocations for buffer "
3710 "cache pages and other internal kernel data pages commonly shared by the "
3711 "kernel across multiple users. All cpusets, whether I<mem_exclusive> or not, "
3712 "restrict allocations of memory for user space. This enables configuring a "
3713 "system so that several independent jobs can share common kernel data, while "
3714 "isolating each job's user allocation in its own cpuset. To do this, "
3715 "construct a large I<mem_exclusive> cpuset to hold all the jobs, and "
3716 "construct child, non-I<mem_exclusive> cpusets for each individual job. Only "
3717 "a small amount of kernel memory, such as requests from interrupt handlers, "
3718 "is allowed to be placed on memory nodes outside even a I<mem_exclusive> "
3722 #: build/C/man7/cpuset.7:431
3728 #: build/C/man7/cpuset.7:446
3730 "A cpuset that has I<mem_exclusive> or I<mem_hardwall> set is a I<hardwall> "
3731 "cpuset. A I<hardwall> cpuset restricts kernel allocations for page, buffer, "
3732 "and other data commonly shared by the kernel across multiple users. All "
3733 "cpusets, whether I<hardwall> or not, restrict allocations of memory for user "
3736 "A cpuset that has I<mem_exclusive> or I<mem_hardwall> set is a I<hardwall> "
3737 "cpuset. A I<hardwall> cpuset restricts kernel allocations for page, buffer, "
3738 "and other data commonly shared by the kernel across multiple users. All "
3739 "cpusets, whether I<hardwall> or not, restrict allocations of memory for user "
3743 #: build/C/man7/cpuset.7:457
3745 "This enables configuring a system so that several independent jobs can share "
3746 "common kernel data, such as file system pages, while isolating each job's "
3747 "user allocation in its own cpuset. To do this, construct a large "
3748 "I<hardwall> cpuset to hold all the jobs, and construct child cpusets for "
3749 "each individual job which are not I<hardwall> cpusets."
3751 "This enables configuring a system so that several independent jobs can share "
3752 "common kernel data, such as file system pages, while isolating each job's "
3753 "user allocation in its own cpuset. To do this, construct a large "
3754 "I<hardwall> cpuset to hold all the jobs, and construct child cpusets for "
3755 "each individual job which are not I<hardwall> cpusets."
3757 #. ================== Notify On Release ==================
3759 #: build/C/man7/cpuset.7:463
3761 "Only a small amount of kernel memory, such as requests from interrupt "
3762 "handlers, is allowed to be taken outside even a I<hardwall> cpuset."
3764 "Only a small amount of kernel memory, such as requests from interrupt "
3765 "handlers, is allowed to be taken outside even a I<hardwall> cpuset."
3768 #: build/C/man7/cpuset.7:463
3770 msgid "Notify On Release"
3771 msgstr "Notify On Release"
3774 #: build/C/man7/cpuset.7:475
3776 "If the I<notify_on_release> flag is enabled (1) in a cpuset, then whenever "
3777 "the last process in the cpuset leaves (exits or attaches to some other "
3778 "cpuset) and the last child cpuset of that cpuset is removed, the kernel "
3779 "will run the command I</sbin/cpuset_release_agent>, supplying the pathname "
3780 "(relative to the mount point of the cpuset file system) of the abandoned "
3781 "cpuset. This enables automatic removal of abandoned cpusets."
3783 "If the I<notify_on_release> flag is enabled (1) in a cpuset, then whenever "
3784 "the last process in the cpuset leaves (exits or attaches to some other "
3785 "cpuset) and the last child cpuset of that cpuset is removed, the kernel "
3786 "will run the command I</sbin/cpuset_release_agent>, supplying the pathname "
3787 "(relative to the mount point of the cpuset file system) of the abandoned "
3788 "cpuset. This enables automatic removal of abandoned cpusets."
3791 #: build/C/man7/cpuset.7:483
3793 "The default value of I<notify_on_release> in the root cpuset at system boot "
3794 "is disabled (0). The default value of other cpusets at creation is the "
3795 "current value of their parent's I<notify_on_release> setting."
3797 "The default value of I<notify_on_release> in the root cpuset at system boot "
3798 "is disabled (0). The default value of other cpusets at creation is the "
3799 "current value of their parent's I<notify_on_release> setting."
3802 #: build/C/man7/cpuset.7:491
3804 "The command I</sbin/cpuset_release_agent> is invoked, with the name (I</dev/"
3805 "cpuset> relative path) of the to-be-released cpuset in I<argv[1]>."
3807 "The command I</sbin/cpuset_release_agent> is invoked, with the name (I</dev/"
3808 "cpuset> relative path) of the to-be-released cpuset in I<argv[1]>."
3811 #: build/C/man7/cpuset.7:495
3813 "The usual contents of the command I</sbin/cpuset_release_agent> is simply "
3816 "The usual contents of the command I</sbin/cpuset_release_agent> is simply "
3820 #: build/C/man7/cpuset.7:500
3824 "rmdir /dev/cpuset/$1\n"
3827 "rmdir /dev/cpuset/$1\n"
3829 #. ================== Memory Pressure ==================
3831 #: build/C/man7/cpuset.7:508
3833 "As with other flag values below, this flag can be changed by writing an "
3834 "ASCII number 0 or 1 (with optional trailing newline) into the file, to "
3835 "clear or set the flag, respectively."
3837 "As with other flag values below, this flag can be changed by writing an "
3838 "ASCII number 0 or 1 (with optional trailing newline) into the file, to "
3839 "clear or set the flag, respectively."
3842 #: build/C/man7/cpuset.7:508
3844 msgid "Memory Pressure"
3845 msgstr "Memory Pressure"
3848 #: build/C/man7/cpuset.7:514
3850 "The I<memory_pressure> of a cpuset provides a simple per-cpuset running "
3851 "average of the rate that the processes in a cpuset are attempting to free up "
3852 "in-use memory on the nodes of the cpuset to satisfy additional memory "
3855 "The I<memory_pressure> of a cpuset provides a simple per-cpuset running "
3856 "average of the rate that the processes in a cpuset are attempting to free up "
3857 "in-use memory on the nodes of the cpuset to satisfy additional memory "
3861 #: build/C/man7/cpuset.7:518
3863 "This enables batch managers that are monitoring jobs running in dedicated "
3864 "cpusets to efficiently detect what level of memory pressure that job is "
3867 "This enables batch managers that are monitoring jobs running in dedicated "
3868 "cpusets to efficiently detect what level of memory pressure that job is "
3872 #: build/C/man7/cpuset.7:525
3874 "This is useful both on tightly managed systems running a wide mix of "
3875 "submitted jobs, which may choose to terminate or reprioritize jobs that are "
3876 "trying to use more memory than allowed on the nodes assigned them, and with "
3877 "tightly coupled, long-running, massively parallel scientific computing jobs "
3878 "that will dramatically fail to meet required performance goals if they start "
3879 "to use more memory than allowed to them."
3881 "This is useful both on tightly managed systems running a wide mix of "
3882 "submitted jobs, which may choose to terminate or reprioritize jobs that are "
3883 "trying to use more memory than allowed on the nodes assigned them, and with "
3884 "tightly coupled, long-running, massively parallel scientific computing jobs "
3885 "that will dramatically fail to meet required performance goals if they start "
3886 "to use more memory than allowed to them."
3889 #: build/C/man7/cpuset.7:530
3891 "This mechanism provides a very economical way for the batch manager to "
3892 "monitor a cpuset for signs of memory pressure. It's up to the batch manager "
3893 "or other user code to decide what action to take if it detects signs of "
3896 "This mechanism provides a very economical way for the batch manager to "
3897 "monitor a cpuset for signs of memory pressure. It's up to the batch manager "
3898 "or other user code to decide what action to take if it detects signs of "
3902 #: build/C/man7/cpuset.7:537
3904 "Unless memory pressure calculation is enabled by setting the pseudo-file I</"
3905 "dev/cpuset/memory_pressure_enabled>, it is not computed for any cpuset, and "
3906 "reads from any I<memory_pressure> always return zero, as represented by the "
3907 "ASCII string \"0\\en\". See the B<WARNINGS> section, below."
3909 "Unless memory pressure calculation is enabled by setting the pseudo-file I</"
3910 "dev/cpuset/memory_pressure_enabled>, it is not computed for any cpuset, and "
3911 "reads from any I<memory_pressure> always return zero, as represented by the "
3912 "ASCII string \"0\\en\". See the B<WARNINGS> section, below."
3915 #: build/C/man7/cpuset.7:539
3916 msgid "A per-cpuset, running average is employed for the following reasons:"
3917 msgstr "A per-cpuset, running average is employed for the following reasons:"
3920 #: build/C/man7/cpuset.7:544
3922 "Because this meter is per-cpuset rather than per-process or per virtual "
3923 "memory region, the system load imposed by a batch scheduler monitoring this "
3924 "metric is sharply reduced on large systems, because a scan of the tasklist "
3925 "can be avoided on each set of queries."
3927 "Because this meter is per-cpuset rather than per-process or per virtual "
3928 "memory region, the system load imposed by a batch scheduler monitoring this "
3929 "metric is sharply reduced on large systems, because a scan of the tasklist "
3930 "can be avoided on each set of queries."
3933 #: build/C/man7/cpuset.7:549
3935 "Because this meter is a running average rather than an accumulating counter, "
3936 "a batch scheduler can detect memory pressure with a single read, instead of "
3937 "having to read and accumulate results for a period of time."
3939 "Because this meter is a running average rather than an accumulating counter, "
3940 "a batch scheduler can detect memory pressure with a single read, instead of "
3941 "having to read and accumulate results for a period of time."
3944 #: build/C/man7/cpuset.7:555
3946 "Because this meter is per-cpuset rather than per-process, the batch "
3947 "scheduler can obtain the key information\\(emmemory pressure in a cpuset"
3948 "\\(emwith a single read, rather than having to query and accumulate results "
3949 "over all the (dynamically changing) set of processes in the cpuset."
3951 "Because this meter is per-cpuset rather than per-process, the batch "
3952 "scheduler can obtain the key information\\(emmemory pressure in a cpuset"
3953 "\\(emwith a single read, rather than having to query and accumulate results "
3954 "over all the (dynamically changing) set of processes in the cpuset."
3957 #: build/C/man7/cpuset.7:563
3959 "The I<memory_pressure> of a cpuset is calculated using a per-cpuset simple "
3960 "digital filter that is kept within the kernel. For each cpuset, this filter "
3961 "tracks the recent rate at which processes attached to that cpuset enter the "
3962 "kernel direct reclaim code."
3964 "The I<memory_pressure> of a cpuset is calculated using a per-cpuset simple "
3965 "digital filter that is kept within the kernel. For each cpuset, this filter "
3966 "tracks the recent rate at which processes attached to that cpuset enter the "
3967 "kernel direct reclaim code."
3970 #: build/C/man7/cpuset.7:572
3972 "The kernel direct reclaim code is entered whenever a process has to satisfy "
3973 "a memory page request by first finding some other page to repurpose, due to "
3974 "lack of any readily available already free pages. Dirty file system pages "
3975 "are repurposed by first writing them to disk. Unmodified file system buffer "
3976 "pages are repurposed by simply dropping them, though if that page is needed "
3977 "again, it will have to be reread from disk."
3979 "The kernel direct reclaim code is entered whenever a process has to satisfy "
3980 "a memory page request by first finding some other page to repurpose, due to "
3981 "lack of any readily available already free pages. Dirty file system pages "
3982 "are repurposed by first writing them to disk. Unmodified file system buffer "
3983 "pages are repurposed by simply dropping them, though if that page is needed "
3984 "again, it will have to be reread from disk."
3986 #. ================== Memory Spread ==================
3988 #: build/C/man7/cpuset.7:580
3990 "The I<memory_pressure> file provides an integer number representing the "
3991 "recent (half-life of 10 seconds) rate of entries to the direct reclaim code "
3992 "caused by any process in the cpuset, in units of reclaims attempted per "
3993 "second, times 1000."
3995 "The I<memory_pressure> file provides an integer number representing the "
3996 "recent (half-life of 10 seconds) rate of entries to the direct reclaim code "
3997 "caused by any process in the cpuset, in units of reclaims attempted per "
3998 "second, times 1000."
4001 #: build/C/man7/cpuset.7:580
4003 msgid "Memory Spread"
4004 msgstr "Memory Spread"
4007 #: build/C/man7/cpuset.7:588
4009 "There are two Boolean flag files per cpuset that control where the kernel "
4010 "allocates pages for the file-system buffers and related in-kernel data "
4011 "structures. They are called I<memory_spread_page> and I<memory_spread_slab>."
4013 "There are two Boolean flag files per cpuset that control where the kernel "
4014 "allocates pages for the file-system buffers and related in-kernel data "
4015 "structures. They are called I<memory_spread_page> and I<memory_spread_slab>."
4018 #: build/C/man7/cpuset.7:595
4020 "If the per-cpuset Boolean flag file I<memory_spread_page> is set, then the "
4021 "kernel will spread the file-system buffers (page cache) evenly over all the "
4022 "nodes that the faulting process is allowed to use, instead of preferring to "
4023 "put those pages on the node where the process is running."
4025 "If the per-cpuset Boolean flag file I<memory_spread_page> is set, then the "
4026 "kernel will spread the file-system buffers (page cache) evenly over all the "
4027 "nodes that the faulting process is allowed to use, instead of preferring to "
4028 "put those pages on the node where the process is running."
4031 #: build/C/man7/cpuset.7:603
4033 "If the per-cpuset Boolean flag file I<memory_spread_slab> is set, then the "
4034 "kernel will spread some file-system-related slab caches, such as those for "
4035 "inodes and directory entries, evenly over all the nodes that the faulting "
4036 "process is allowed to use, instead of preferring to put those pages on the "
4037 "node where the process is running."
4039 "If the per-cpuset Boolean flag file I<memory_spread_slab> is set, then the "
4040 "kernel will spread some file-system-related slab caches, such as those for "
4041 "inodes and directory entries, evenly over all the nodes that the faulting "
4042 "process is allowed to use, instead of preferring to put those pages on the "
4043 "node where the process is running."
4046 #: build/C/man7/cpuset.7:608
4048 "The setting of these flags does not affect the data segment (see B<brk>(2)) "
4049 "or stack segment pages of a process."
4051 "The setting of these flags does not affect the data segment (see B<brk>(2)) "
4052 "or stack segment pages of a process."
4055 #: build/C/man7/cpuset.7:616
4057 "By default, both kinds of memory spreading are off and the kernel prefers to "
4058 "allocate memory pages on the node local to where the requesting process is "
4059 "running. If that node is not allowed by the process's NUMA memory policy or "
4060 "cpuset configuration or if there are insufficient free memory pages on that "
4061 "node, then the kernel looks for the nearest node that is allowed and has "
4062 "sufficient free memory."
4064 "By default, both kinds of memory spreading are off and the kernel prefers to "
4065 "allocate memory pages on the node local to where the requesting process is "
4066 "running. If that node is not allowed by the process's NUMA memory policy or "
4067 "cpuset configuration or if there are insufficient free memory pages on that "
4068 "node, then the kernel looks for the nearest node that is allowed and has "
4069 "sufficient free memory."
4072 #: build/C/man7/cpuset.7:619
4074 "When new cpusets are created, they inherit the memory spread settings of "
4077 "When new cpusets are created, they inherit the memory spread settings of "
4081 #: build/C/man7/cpuset.7:634
4083 "Setting memory spreading causes allocations for the affected page or slab "
4084 "caches to ignore the process's NUMA memory policy and be spread instead. "
4085 "However, the effect of these changes in memory placement caused by cpuset-"
4086 "specified memory spreading is hidden from the B<mbind>(2) or "
4087 "B<set_mempolicy>(2) calls. These two NUMA memory policy calls always "
4088 "appear to behave as if no cpuset-specified memory spreading is in effect, "
4089 "even if it is. If cpuset memory spreading is subsequently turned off, the "
4090 "NUMA memory policy most recently specified by these calls is automatically "
4093 "Setting memory spreading causes allocations for the affected page or slab "
4094 "caches to ignore the process's NUMA memory policy and be spread instead. "
4095 "However, the effect of these changes in memory placement caused by cpuset-"
4096 "specified memory spreading is hidden from the B<mbind>(2) or "
4097 "B<set_mempolicy>(2) calls. These two NUMA memory policy calls always "
4098 "appear to behave as if no cpuset-specified memory spreading is in effect, "
4099 "even if it is. If cpuset memory spreading is subsequently turned off, the "
4100 "NUMA memory policy most recently specified by these calls is automatically "
4104 #: build/C/man7/cpuset.7:643
4106 "Both I<memory_spread_page> and I<memory_spread_slab> are Boolean flag "
4107 "files. By default they contain \"0\", meaning that the feature is off for "
4108 "that cpuset. If a \"1\" is written to that file, that turns the named "
4111 "Both I<memory_spread_page> and I<memory_spread_slab> are Boolean flag "
4112 "files. By default they contain \"0\", meaning that the feature is off for "
4113 "that cpuset. If a \"1\" is written to that file, that turns the named "
4117 #: build/C/man7/cpuset.7:646
4119 "Cpuset-specified memory spreading behaves similarly to what is known (in "
4120 "other contexts) as round-robin or interleave memory placement."
4122 "Cpuset-specified memory spreading behaves similarly to what is known (in "
4123 "other contexts) as round-robin or interleave memory placement."
4126 #: build/C/man7/cpuset.7:649
4128 "Cpuset-specified memory spreading can provide substantial performance "
4129 "improvements for jobs that:"
4131 "Cpuset-specified memory spreading can provide substantial performance "
4132 "improvements for jobs that:"
4135 #: build/C/man7/cpuset.7:649
4141 #: build/C/man7/cpuset.7:653
4143 "need to place thread-local data on memory nodes close to the CPUs which are "
4144 "running the threads that most frequently access that data; but also"
4146 "need to place thread-local data on memory nodes close to the CPUs which are "
4147 "running the threads that most frequently access that data; but also"
4150 #: build/C/man7/cpuset.7:653
4156 #: build/C/man7/cpuset.7:656
4158 "need to access large file-system data sets that must to be spread across the "
4159 "several nodes in the job's cpuset in order to fit."
4161 "need to access large file-system data sets that must to be spread across the "
4162 "several nodes in the job's cpuset in order to fit."
4164 #. ================== Memory Migration ==================
4166 #: build/C/man7/cpuset.7:663
4168 "Without this policy, the memory allocation across the nodes in the job's "
4169 "cpuset can become very uneven, especially for jobs that might have just a "
4170 "single thread initializing or reading in the data set."
4172 "Without this policy, the memory allocation across the nodes in the job's "
4173 "cpuset can become very uneven, especially for jobs that might have just a "
4174 "single thread initializing or reading in the data set."
4177 #: build/C/man7/cpuset.7:663
4179 msgid "Memory Migration"
4180 msgstr "Memory Migration"
4183 #: build/C/man7/cpuset.7:672
4185 "Normally, under the default setting (disabled) of I<memory_migrate>, once a "
4186 "page is allocated (given a physical page of main memory) then that page "
4187 "stays on whatever node it was allocated, so long as it remains allocated, "
4188 "even if the cpuset's memory-placement policy I<mems> subsequently changes."
4190 "Normally, under the default setting (disabled) of I<memory_migrate>, once a "
4191 "page is allocated (given a physical page of main memory) then that page "
4192 "stays on whatever node it was allocated, so long as it remains allocated, "
4193 "even if the cpuset's memory-placement policy I<mems> subsequently changes."
4196 #: build/C/man7/cpuset.7:678
4198 "When memory migration is enabled in a cpuset, if the I<mems> setting of the "
4199 "cpuset is changed, then any memory page in use by any process in the cpuset "
4200 "that is on a memory node that is no longer allowed will be migrated to a "
4201 "memory node that is allowed."
4203 "When memory migration is enabled in a cpuset, if the I<mems> setting of the "
4204 "cpuset is changed, then any memory page in use by any process in the cpuset "
4205 "that is on a memory node that is no longer allowed will be migrated to a "
4206 "memory node that is allowed."
4209 #: build/C/man7/cpuset.7:684
4211 "Furthermore, if a process is moved into a cpuset with I<memory_migrate> "
4212 "enabled, any memory pages it uses that were on memory nodes allowed in its "
4213 "previous cpuset, but which are not allowed in its new cpuset, will be "
4214 "migrated to a memory node allowed in the new cpuset."
4216 "Furthermore, if a process is moved into a cpuset with I<memory_migrate> "
4217 "enabled, any memory pages it uses that were on memory nodes allowed in its "
4218 "previous cpuset, but which are not allowed in its new cpuset, will be "
4219 "migrated to a memory node allowed in the new cpuset."
4221 #. ================== Scheduler Load Balancing ==================
4223 #: build/C/man7/cpuset.7:692
4225 "The relative placement of a migrated page within the cpuset is preserved "
4226 "during these migration operations if possible. For example, if the page was "
4227 "on the second valid node of the prior cpuset, then the page will be placed "
4228 "on the second valid node of the new cpuset, if possible."
4230 "The relative placement of a migrated page within the cpuset is preserved "
4231 "during these migration operations if possible. For example, if the page was "
4232 "on the second valid node of the prior cpuset, then the page will be placed "
4233 "on the second valid node of the new cpuset, if possible."
4236 #: build/C/man7/cpuset.7:692
4238 msgid "Scheduler Load Balancing"
4239 msgstr "Scheduler Load Balancing"
4242 #: build/C/man7/cpuset.7:699
4244 "The kernel scheduler automatically load balances processes. If one CPU is "
4245 "underutilized, the kernel will look for processes on other more overloaded "
4246 "CPUs and move those processes to the underutilized CPU, within the "
4247 "constraints of such placement mechanisms as cpusets and B<sched_setaffinity>"
4250 "The kernel scheduler automatically load balances processes. If one CPU is "
4251 "underutilized, the kernel will look for processes on other more overloaded "
4252 "CPUs and move those processes to the underutilized CPU, within the "
4253 "constraints of such placement mechanisms as cpusets and B<sched_setaffinity>"
4257 #: build/C/man7/cpuset.7:712
4259 "The algorithmic cost of load balancing and its impact on key shared kernel "
4260 "data structures such as the process list increases more than linearly with "
4261 "the number of CPUs being balanced. For example, it costs more to load "
4262 "balance across one large set of CPUs than it does to balance across two "
4263 "smaller sets of CPUs, each of half the size of the larger set. (The precise "
4264 "relationship between the number of CPUs being balanced and the cost of load "
4265 "balancing depends on implementation details of the kernel process scheduler, "
4266 "which is subject to change over time, as improved kernel scheduler "
4267 "algorithms are implemented.)"
4269 "The algorithmic cost of load balancing and its impact on key shared kernel "
4270 "data structures such as the process list increases more than linearly with "
4271 "the number of CPUs being balanced. For example, it costs more to load "
4272 "balance across one large set of CPUs than it does to balance across two "
4273 "smaller sets of CPUs, each of half the size of the larger set. (The precise "
4274 "relationship between the number of CPUs being balanced and the cost of load "
4275 "balancing depends on implementation details of the kernel process scheduler, "
4276 "which is subject to change over time, as improved kernel scheduler "
4277 "algorithms are implemented.)"
4280 #: build/C/man7/cpuset.7:718
4282 "The per-cpuset flag I<sched_load_balance> provides a mechanism to suppress "
4283 "this automatic scheduler load balancing in cases where it is not needed and "
4284 "suppressing it would have worthwhile performance benefits."
4286 "The per-cpuset flag I<sched_load_balance> provides a mechanism to suppress "
4287 "this automatic scheduler load balancing in cases where it is not needed and "
4288 "suppressing it would have worthwhile performance benefits."
4291 #: build/C/man7/cpuset.7:722
4293 "By default, load balancing is done across all CPUs, except those marked "
4294 "isolated using the kernel boot time \"isolcpus=\" argument. (See "
4295 "B<Scheduler Relax Domain Level>, below, to change this default.)"
4297 "By default, load balancing is done across all CPUs, except those marked "
4298 "isolated using the kernel boot time \"isolcpus=\" argument. (See "
4299 "B<Scheduler Relax Domain Level>, below, to change this default.)"
4302 #: build/C/man7/cpuset.7:725
4304 "This default load balancing across all CPUs is not well suited to the "
4305 "following two situations:"
4307 "This default load balancing across all CPUs is not well suited to the "
4308 "following two situations:"
4311 #: build/C/man7/cpuset.7:729
4313 "On large systems, load balancing across many CPUs is expensive. If the "
4314 "system is managed using cpusets to place independent jobs on separate sets "
4315 "of CPUs, full load balancing is unnecessary."
4317 "On large systems, load balancing across many CPUs is expensive. If the "
4318 "system is managed using cpusets to place independent jobs on separate sets "
4319 "of CPUs, full load balancing is unnecessary."
4322 #: build/C/man7/cpuset.7:733
4324 "Systems supporting real-time on some CPUs need to minimize system overhead "
4325 "on those CPUs, including avoiding process load balancing if that is not "
4328 "Systems supporting real-time on some CPUs need to minimize system overhead "
4329 "on those CPUs, including avoiding process load balancing if that is not "
4333 #: build/C/man7/cpuset.7:743
4335 "When the per-cpuset flag I<sched_load_balance> is enabled (the default "
4336 "setting), it requests load balancing across all the CPUs in that cpuset's "
4337 "allowed CPUs, ensuring that load balancing can move a process (not otherwise "
4338 "pinned, as by B<sched_setaffinity>(2)) from any CPU in that cpuset to any "
4341 "When the per-cpuset flag I<sched_load_balance> is enabled (the default "
4342 "setting), it requests load balancing across all the CPUs in that cpuset's "
4343 "allowed CPUs, ensuring that load balancing can move a process (not otherwise "
4344 "pinned, as by B<sched_setaffinity>(2)) from any CPU in that cpuset to any "
4348 #: build/C/man7/cpuset.7:752
4350 "When the per-cpuset flag I<sched_load_balance> is disabled, then the "
4351 "scheduler will avoid load balancing across the CPUs in that cpuset, "
4352 "I<except> in so far as is necessary because some overlapping cpuset has "
4353 "I<sched_load_balance> enabled."
4355 "When the per-cpuset flag I<sched_load_balance> is disabled, then the "
4356 "scheduler will avoid load balancing across the CPUs in that cpuset, "
4357 "I<except> in so far as is necessary because some overlapping cpuset has "
4358 "I<sched_load_balance> enabled."
4361 #: build/C/man7/cpuset.7:760
4363 "So, for example, if the top cpuset has the flag I<sched_load_balance> "
4364 "enabled, then the scheduler will load balance across all CPUs, and the "
4365 "setting of the I<sched_load_balance> flag in other cpusets has no effect, as "
4366 "we're already fully load balancing."
4368 "So, for example, if the top cpuset has the flag I<sched_load_balance> "
4369 "enabled, then the scheduler will load balance across all CPUs, and the "
4370 "setting of the I<sched_load_balance> flag in other cpusets has no effect, as "
4371 "we're already fully load balancing."
4374 #: build/C/man7/cpuset.7:765
4376 "Therefore in the above two situations, the flag I<sched_load_balance> should "
4377 "be disabled in the top cpuset, and only some of the smaller, child cpusets "
4378 "would have this flag enabled."
4380 "Therefore in the above two situations, the flag I<sched_load_balance> should "
4381 "be disabled in the top cpuset, and only some of the smaller, child cpusets "
4382 "would have this flag enabled."
4385 #: build/C/man7/cpuset.7:773
4387 "When doing this, you don't usually want to leave any unpinned processes in "
4388 "the top cpuset that might use nontrivial amounts of CPU, as such processes "
4389 "may be artificially constrained to some subset of CPUs, depending on the "
4390 "particulars of this flag setting in descendant cpusets. Even if such a "
4391 "process could use spare CPU cycles in some other CPUs, the kernel scheduler "
4392 "might not consider the possibility of load balancing that process to the "
4395 "When doing this, you don't usually want to leave any unpinned processes in "
4396 "the top cpuset that might use nontrivial amounts of CPU, as such processes "
4397 "may be artificially constrained to some subset of CPUs, depending on the "
4398 "particulars of this flag setting in descendant cpusets. Even if such a "
4399 "process could use spare CPU cycles in some other CPUs, the kernel scheduler "
4400 "might not consider the possibility of load balancing that process to the "
4403 #. ================== Scheduler Relax Domain Level ==================
4405 #: build/C/man7/cpuset.7:779
4407 "Of course, processes pinned to a particular CPU can be left in a cpuset that "
4408 "disables I<sched_load_balance> as those processes aren't going anywhere else "
4411 "Of course, processes pinned to a particular CPU can be left in a cpuset that "
4412 "disables I<sched_load_balance> as those processes aren't going anywhere else "
4416 #: build/C/man7/cpuset.7:779
4418 msgid "Scheduler Relax Domain Level"
4419 msgstr "Scheduler Relax Domain Level"
4422 #: build/C/man7/cpuset.7:800
4424 "The kernel scheduler performs immediate load balancing whenever a CPU "
4425 "becomes free or another task becomes runnable. This load balancing works to "
4426 "ensure that as many CPUs as possible are usefully employed running tasks. "
4427 "The kernel also performs periodic load balancing off the software clock "
4428 "described in I<time>(7). The setting of I<sched_relax_domain_level> only "
4429 "applies to immediate load balancing. Regardless of the "
4430 "I<sched_relax_domain_level> setting, periodic load balancing is attempted "
4431 "over all CPUs (unless disabled by turning off I<sched_load_balance>.) In "
4432 "any case, of course, tasks will only be scheduled to run on CPUs allowed by "
4433 "their cpuset, as modified by B<sched_setaffinity>(2) system calls."
4435 "The kernel scheduler performs immediate load balancing whenever a CPU "
4436 "becomes free or another task becomes runnable. This load balancing works to "
4437 "ensure that as many CPUs as possible are usefully employed running tasks. "
4438 "The kernel also performs periodic load balancing off the software clock "
4439 "described in I<time>(7). The setting of I<sched_relax_domain_level> only "
4440 "applies to immediate load balancing. Regardless of the "
4441 "I<sched_relax_domain_level> setting, periodic load balancing is attempted "
4442 "over all CPUs (unless disabled by turning off I<sched_load_balance>.) In "
4443 "any case, of course, tasks will only be scheduled to run on CPUs allowed by "
4444 "their cpuset, as modified by B<sched_setaffinity>(2) system calls."
4447 #: build/C/man7/cpuset.7:808
4449 "On small systems, such as those with just a few CPUs, immediate load "
4450 "balancing is useful to improve system interactivity and to minimize wasteful "
4451 "idle CPU cycles. But on large systems, attempting immediate load balancing "
4452 "across a large number of CPUs can be more costly than it is worth, depending "
4453 "on the particular performance characteristics of the job mix and the "
4456 "On small systems, such as those with just a few CPUs, immediate load "
4457 "balancing is useful to improve system interactivity and to minimize wasteful "
4458 "idle CPU cycles. But on large systems, attempting immediate load balancing "
4459 "across a large number of CPUs can be more costly than it is worth, depending "
4460 "on the particular performance characteristics of the job mix and the "
4464 #: build/C/man7/cpuset.7:816
4466 "The exact meaning of the small integer values of I<sched_relax_domain_level> "
4467 "will depend on internal implementation details of the kernel scheduler code "
4468 "and on the non-uniform architecture of the hardware. Both of these will "
4469 "evolve over time and vary by system architecture and kernel version."
4471 "The exact meaning of the small integer values of I<sched_relax_domain_level> "
4472 "will depend on internal implementation details of the kernel scheduler code "
4473 "and on the non-uniform architecture of the hardware. Both of these will "
4474 "evolve over time and vary by system architecture and kernel version."
4477 #: build/C/man7/cpuset.7:821
4479 "As of this writing, when this capability was introduced in Linux 2.6.26, on "
4480 "certain popular architectures, the positive values of "
4481 "I<sched_relax_domain_level> have the following meanings."
4483 "As of this writing, when this capability was introduced in Linux 2.6.26, on "
4484 "certain popular architectures, the positive values of "
4485 "I<sched_relax_domain_level> have the following meanings."
4488 #: build/C/man7/cpuset.7:823
4494 #: build/C/man7/cpuset.7:826
4496 "Perform immediate load balancing across Hyper-Thread siblings on the same "
4499 "Perform immediate load balancing across Hyper-Thread siblings on the same "
4503 #: build/C/man7/cpuset.7:826
4509 #: build/C/man7/cpuset.7:828
4511 "Perform immediate load balancing across other cores in the same package."
4513 "Perform immediate load balancing across other cores in the same package."
4516 #: build/C/man7/cpuset.7:828
4522 #: build/C/man7/cpuset.7:831
4524 "Perform immediate load balancing across other CPUs on the same node or blade."
4526 "Perform immediate load balancing across other CPUs on the same node or blade."
4529 #: build/C/man7/cpuset.7:831
4535 #: build/C/man7/cpuset.7:834
4537 "Perform immediate load balancing across over several (implementation detail) "
4538 "nodes [On NUMA systems]."
4540 "Perform immediate load balancing across over several (implementation detail) "
4541 "nodes [On NUMA systems]."
4544 #: build/C/man7/cpuset.7:834
4550 #: build/C/man7/cpuset.7:837
4552 "Perform immediate load balancing across over all CPUs in system [On NUMA "
4555 "Perform immediate load balancing across over all CPUs in system [On NUMA "
4559 #: build/C/man7/cpuset.7:846
4561 "The I<sched_relax_domain_level> value of zero (0) always means don't perform "
4562 "immediate load balancing, hence that load balancing is only done "
4563 "periodically, not immediately when a CPU becomes available or another task "
4566 "The I<sched_relax_domain_level> value of zero (0) always means don't perform "
4567 "immediate load balancing, hence that load balancing is only done "
4568 "periodically, not immediately when a CPU becomes available or another task "
4572 #: build/C/man7/cpuset.7:854
4574 "The I<sched_relax_domain_level> value of minus one (-1) always means use "
4575 "the system default value. The system default value can vary by architecture "
4576 "and kernel version. This system default value can be changed by kernel boot-"
4577 "time \"relax_domain_level=\" argument."
4579 "The I<sched_relax_domain_level> value of minus one (-1) always means use "
4580 "the system default value. The system default value can vary by architecture "
4581 "and kernel version. This system default value can be changed by kernel boot-"
4582 "time \"relax_domain_level=\" argument."
4585 #: build/C/man7/cpuset.7:862
4587 "In the case of multiple overlapping cpusets which have conflicting "
4588 "I<sched_relax_domain_level> values, then the highest such value applies to "
4589 "all CPUs in any of the overlapping cpusets. In such cases, the value "
4590 "B<minus one (-1)> is the lowest value, overridden by any other value, and "
4591 "the value B<zero (0)> is the next lowest value."
4593 "In the case of multiple overlapping cpusets which have conflicting "
4594 "I<sched_relax_domain_level> values, then the highest such value applies to "
4595 "all CPUs in any of the overlapping cpusets. In such cases, the value "
4596 "B<minus one (-1)> is the lowest value, overridden by any other value, and "
4597 "the value B<zero (0)> is the next lowest value."
4600 #: build/C/man7/cpuset.7:862
4605 #. ================== Mask Format ==================
4607 #: build/C/man7/cpuset.7:866
4609 "The following formats are used to represent sets of CPUs and memory nodes."
4611 "The following formats are used to represent sets of CPUs and memory nodes."
4614 #: build/C/man7/cpuset.7:866
4617 msgstr "Mask Format"
4620 #: build/C/man7/cpuset.7:871
4622 "The B<Mask Format> is used to represent CPU and memory-node bitmasks in the "
4623 "I</proc/E<lt>pidE<gt>/status> file."
4625 "The B<Mask Format> is used to represent CPU and memory-node bitmasks in the "
4626 "I</proc/E<lt>pidE<gt>/status> file."
4629 #: build/C/man7/cpuset.7:879
4631 "This format displays each 32-bit word in hexadecimal (using ASCII characters "
4632 "\"0\" - \"9\" and \"a\" - \"f\"); words are filled with leading zeros, if "
4633 "required. For masks longer than one word, a comma separator is used between "
4634 "words. Words are displayed in big-endian order, which has the most "
4635 "significant bit first. The hex digits within a word are also in big-endian "
4638 "This format displays each 32-bit word in hexadecimal (using ASCII characters "
4639 "\"0\" - \"9\" and \"a\" - \"f\"); words are filled with leading zeros, if "
4640 "required. For masks longer than one word, a comma separator is used between "
4641 "words. Words are displayed in big-endian order, which has the most "
4642 "significant bit first. The hex digits within a word are also in big-endian "
4646 #: build/C/man7/cpuset.7:882
4648 "The number of 32-bit words displayed is the minimum number needed to display "
4649 "all bits of the bitmask, based on the size of the bitmask."
4651 "The number of 32-bit words displayed is the minimum number needed to display "
4652 "all bits of the bitmask, based on the size of the bitmask."
4655 #: build/C/man7/cpuset.7:884
4656 msgid "Examples of the B<Mask Format>:"
4657 msgstr "Examples of the B<Mask Format>:"
4660 #: build/C/man7/cpuset.7:892
4663 "00000001 # just bit 0 set\n"
4664 "40000000,00000000,00000000 # just bit 94 set\n"
4665 "00000001,00000000,00000000 # just bit 64 set\n"
4666 "000000ff,00000000 # bits 32-39 set\n"
4667 "00000000,000E3862 # 1,5,6,11-13,17-19 set\n"
4669 "00000001 # just bit 0 set\n"
4670 "40000000,00000000,00000000 # just bit 94 set\n"
4671 "00000001,00000000,00000000 # just bit 64 set\n"
4672 "000000ff,00000000 # bits 32-39 set\n"
4673 "00000000,000E3862 # 1,5,6,11-13,17-19 set\n"
4676 #: build/C/man7/cpuset.7:896
4677 msgid "A mask with bits 0, 1, 2, 4, 8, 16, 32, and 64 set displays as:"
4678 msgstr "A mask with bits 0, 1, 2, 4, 8, 16, 32, and 64 set displays as:"
4681 #: build/C/man7/cpuset.7:900
4683 msgid "00000001,00000001,00010117\n"
4684 msgstr "00000001,00000001,00010117\n"
4686 #. ================== List Format ==================
4688 #: build/C/man7/cpuset.7:907
4690 "The first \"1\" is for bit 64, the second for bit 32, the third for bit 16, "
4691 "the fourth for bit 8, the fifth for bit 4, and the \"7\" is for bits 2, 1, "
4694 "The first \"1\" is for bit 64, the second for bit 32, the third for bit 16, "
4695 "the fourth for bit 8, the fifth for bit 4, and the \"7\" is for bits 2, 1, "
4699 #: build/C/man7/cpuset.7:907
4702 msgstr "List Format"
4705 #: build/C/man7/cpuset.7:914
4707 "The B<List Format> for I<cpus> and I<mems> is a comma-separated list of CPU "
4708 "or memory-node numbers and ranges of numbers, in ASCII decimal."
4710 "The B<List Format> for I<cpus> and I<mems> is a comma-separated list of CPU "
4711 "or memory-node numbers and ranges of numbers, in ASCII decimal."
4714 #: build/C/man7/cpuset.7:916
4715 msgid "Examples of the B<List Format>:"
4716 msgstr "Examples of the B<List Format>:"
4719 #: build/C/man7/cpuset.7:921
4722 "0-4,9 # bits 0, 1, 2, 3, 4, and 9 set\n"
4723 "0-2,7,12-14 # bits 0, 1, 2, 7, 12, 13, and 14 set\n"
4725 "0-4,9 # bits 0, 1, 2, 3, 4, and 9 set\n"
4726 "0-2,7,12-14 # bits 0, 1, 2, 7, 12, 13, and 14 set\n"
4728 #. ================== RULES ==================
4730 #: build/C/man7/cpuset.7:924
4736 #: build/C/man7/cpuset.7:926
4737 msgid "The following rules apply to each cpuset:"
4738 msgstr "The following rules apply to each cpuset:"
4741 #: build/C/man7/cpuset.7:929
4743 "Its CPUs and memory nodes must be a (possibly equal) subset of its parent's."
4745 "Its CPUs and memory nodes must be a (possibly equal) subset of its parent's."
4748 #: build/C/man7/cpuset.7:933
4749 msgid "It can only be marked I<cpu_exclusive> if its parent is."
4750 msgstr "It can only be marked I<cpu_exclusive> if its parent is."
4753 #: build/C/man7/cpuset.7:937
4754 msgid "It can only be marked I<mem_exclusive> if its parent is."
4755 msgstr "It can only be marked I<mem_exclusive> if its parent is."
4758 #: build/C/man7/cpuset.7:941
4759 msgid "If it is I<cpu_exclusive>, its CPUs may not overlap any sibling."
4760 msgstr "If it is I<cpu_exclusive>, its CPUs may not overlap any sibling."
4762 #. ================== PERMISSIONS ==================
4764 #: build/C/man7/cpuset.7:946
4766 "If it is I<memory_exclusive>, its memory nodes may not overlap any sibling."
4768 "If it is I<memory_exclusive>, its memory nodes may not overlap any sibling."
4771 #: build/C/man7/cpuset.7:946
4774 msgstr "PERMISSIONS"
4777 #: build/C/man7/cpuset.7:951
4779 "The permissions of a cpuset are determined by the permissions of the "
4780 "directories and pseudo-files in the cpuset file system, normally mounted at "
4783 "The permissions of a cpuset are determined by the permissions of the "
4784 "directories and pseudo-files in the cpuset file system, normally mounted at "
4788 #: build/C/man7/cpuset.7:960
4790 "For instance, a process can put itself in some other cpuset (than its "
4791 "current one) if it can write the I<tasks> file for that cpuset. This "
4792 "requires execute permission on the encompassing directories and write "
4793 "permission on the I<tasks> file."
4795 "For instance, a process can put itself in some other cpuset (than its "
4796 "current one) if it can write the I<tasks> file for that cpuset. This "
4797 "requires execute permission on the encompassing directories and write "
4798 "permission on the I<tasks> file."
4801 #: build/C/man7/cpuset.7:967
4803 "An additional constraint is applied to requests to place some other process "
4804 "in a cpuset. One process may not attach another to a cpuset unless it would "
4805 "have permission to send that process a signal (see B<kill>(2))."
4807 "An additional constraint is applied to requests to place some other process "
4808 "in a cpuset. One process may not attach another to a cpuset unless it would "
4809 "have permission to send that process a signal (see B<kill>(2))."
4812 #: build/C/man7/cpuset.7:978
4814 "A process may create a child cpuset if it can access and write the parent "
4815 "cpuset directory. It can modify the CPUs or memory nodes in a cpuset if it "
4816 "can access that cpuset's directory (execute permissions on the each of the "
4817 "parent directories) and write the corresponding I<cpus> or I<mems> file."
4819 "A process may create a child cpuset if it can access and write the parent "
4820 "cpuset directory. It can modify the CPUs or memory nodes in a cpuset if it "
4821 "can access that cpuset's directory (execute permissions on the each of the "
4822 "parent directories) and write the corresponding I<cpus> or I<mems> file."
4825 #: build/C/man7/cpuset.7:999
4827 "There is one minor difference between the manner in which these permissions "
4828 "are evaluated and the manner in which normal file-system operation "
4829 "permissions are evaluated. The kernel interprets relative pathnames "
4830 "starting at a process's current working directory. Even if one is operating "
4831 "on a cpuset file, relative pathnames are interpreted relative to the "
4832 "process's current working directory, not relative to the process's current "
4833 "cpuset. The only ways that cpuset paths relative to a process's current "
4834 "cpuset can be used are if either the process's current working directory is "
4835 "its cpuset (it first did a B<cd> or B<chdir>(2) to its cpuset directory "
4836 "beneath I</dev/cpuset>, which is a bit unusual) or if some user code "
4837 "converts the relative cpuset path to a full file-system path."
4839 "There is one minor difference between the manner in which these permissions "
4840 "are evaluated and the manner in which normal file-system operation "
4841 "permissions are evaluated. The kernel interprets relative pathnames "
4842 "starting at a process's current working directory. Even if one is operating "
4843 "on a cpuset file, relative pathnames are interpreted relative to the "
4844 "process's current working directory, not relative to the process's current "
4845 "cpuset. The only ways that cpuset paths relative to a process's current "
4846 "cpuset can be used are if either the process's current working directory is "
4847 "its cpuset (it first did a B<cd> or B<chdir>(2) to its cpuset directory "
4848 "beneath I</dev/cpuset>, which is a bit unusual) or if some user code "
4849 "converts the relative cpuset path to a full file-system path."
4851 #. ================== WARNINGS ==================
4853 #: build/C/man7/cpuset.7:1014
4855 "In theory, this means that user code should specify cpusets using absolute "
4856 "pathnames, which requires knowing the mount point of the cpuset file system "
4857 "(usually, but not necessarily, I</dev/cpuset>). In practice, all user level "
4858 "code that this author is aware of simply assumes that if the cpuset file "
4859 "system is mounted, then it is mounted at I</dev/cpuset>. Furthermore, it is "
4860 "common practice for carefully written user code to verify the presence of "
4861 "the pseudo-file I</dev/cpuset/tasks> in order to verify that the cpuset "
4862 "pseudo-file system is currently mounted."
4864 "In theory, this means that user code should specify cpusets using absolute "
4865 "pathnames, which requires knowing the mount point of the cpuset file system "
4866 "(usually, but not necessarily, I</dev/cpuset>). In practice, all user level "
4867 "code that this author is aware of simply assumes that if the cpuset file "
4868 "system is mounted, then it is mounted at I</dev/cpuset>. Furthermore, it is "
4869 "common practice for carefully written user code to verify the presence of "
4870 "the pseudo-file I</dev/cpuset/tasks> in order to verify that the cpuset "
4871 "pseudo-file system is currently mounted."
4874 #: build/C/man7/cpuset.7:1014
4880 #: build/C/man7/cpuset.7:1015
4882 msgid "Enabling memory_pressure"
4883 msgstr "Enabling memory_pressure"
4886 #: build/C/man7/cpuset.7:1024
4888 "By default, the per-cpuset file I<memory_pressure> always contains zero "
4889 "(0). Unless this feature is enabled by writing \"1\" to the pseudo-file I</"
4890 "dev/cpuset/memory_pressure_enabled>, the kernel does not compute per-cpuset "
4891 "I<memory_pressure>."
4893 "By default, the per-cpuset file I<memory_pressure> always contains zero "
4894 "(0). Unless this feature is enabled by writing \"1\" to the pseudo-file I</"
4895 "dev/cpuset/memory_pressure_enabled>, the kernel does not compute per-cpuset "
4896 "I<memory_pressure>."
4899 #: build/C/man7/cpuset.7:1024
4901 msgid "Using the echo command"
4902 msgstr "Using the echo command"
4904 #. Gack! csh(1)'s echo does this
4906 #: build/C/man7/cpuset.7:1035
4908 "When using the B<echo> command at the shell prompt to change the values of "
4909 "cpuset files, beware that the built-in B<echo> command in some shells does "
4910 "not display an error message if the B<write>(2) system call fails. For "
4911 "example, if the command:"
4913 "When using the B<echo> command at the shell prompt to change the values of "
4914 "cpuset files, beware that the built-in B<echo> command in some shells does "
4915 "not display an error message if the B<write>(2) system call fails. For "
4916 "example, if the command:"
4919 #: build/C/man7/cpuset.7:1039
4921 msgid "echo 19 E<gt> mems\n"
4922 msgstr "echo 19 E<gt> mems\n"
4925 #: build/C/man7/cpuset.7:1052
4927 "failed because memory node 19 was not allowed (perhaps the current system "
4928 "does not have a memory node 19), then the B<echo> command might not display "
4929 "any error. It is better to use the B</bin/echo> external command to change "
4930 "cpuset file settings, as this command will display B<write>(2) errors, as "
4933 "failed because memory node 19 was not allowed (perhaps the current system "
4934 "does not have a memory node 19), then the B<echo> command might not display "
4935 "any error. It is better to use the B</bin/echo> external command to change "
4936 "cpuset file settings, as this command will display B<write>(2) errors, as "
4940 #: build/C/man7/cpuset.7:1057
4943 "/bin/echo 19 E<gt> mems\n"
4944 "/bin/echo: write error: Invalid argument\n"
4946 "/bin/echo 19 E<gt> mems\n"
4947 "/bin/echo: write error: Invalid argument\n"
4949 #. ================== EXCEPTIONS ==================
4951 #: build/C/man7/cpuset.7:1060
4957 #: build/C/man7/cpuset.7:1061
4959 msgid "Memory placement"
4960 msgstr "Memory placement"
4963 #: build/C/man7/cpuset.7:1064
4965 "Not all allocations of system memory are constrained by cpusets, for the "
4966 "following reasons."
4968 "Not all allocations of system memory are constrained by cpusets, for the "
4969 "following reasons."
4972 #: build/C/man7/cpuset.7:1079
4974 "If hot-plug functionality is used to remove all the CPUs that are currently "
4975 "assigned to a cpuset, then the kernel will automatically update the "
4976 "I<cpus_allowed> of all processes attached to CPUs in that cpuset to allow "
4977 "all CPUs. When memory hot-plug functionality for removing memory nodes is "
4978 "available, a similar exception is expected to apply there as well. In "
4979 "general, the kernel prefers to violate cpuset placement, rather than "
4980 "starving a process that has had all its allowed CPUs or memory nodes taken "
4981 "offline. User code should reconfigure cpusets to only refer to online CPUs "
4982 "and memory nodes when using hot-plug to add or remove such resources."
4984 "If hot-plug functionality is used to remove all the CPUs that are currently "
4985 "assigned to a cpuset, then the kernel will automatically update the "
4986 "I<cpus_allowed> of all processes attached to CPUs in that cpuset to allow "
4987 "all CPUs. When memory hot-plug functionality for removing memory nodes is "
4988 "available, a similar exception is expected to apply there as well. In "
4989 "general, the kernel prefers to violate cpuset placement, rather than "
4990 "starving a process that has had all its allowed CPUs or memory nodes taken "
4991 "offline. User code should reconfigure cpusets to only refer to online CPUs "
4992 "and memory nodes when using hot-plug to add or remove such resources."
4995 #: build/C/man7/cpuset.7:1087
4997 "A few kernel-critical, internal memory-allocation requests, marked "
4998 "GFP_ATOMIC, must be satisfied immediately. The kernel may drop some request "
4999 "or malfunction if one of these allocations fail. If such a request cannot "
5000 "be satisfied within the current process's cpuset, then we relax the cpuset, "
5001 "and look for memory anywhere we can find it. It's better to violate the "
5002 "cpuset than stress the kernel."
5004 "A few kernel-critical, internal memory-allocation requests, marked "
5005 "GFP_ATOMIC, must be satisfied immediately. The kernel may drop some request "
5006 "or malfunction if one of these allocations fail. If such a request cannot "
5007 "be satisfied within the current process's cpuset, then we relax the cpuset, "
5008 "and look for memory anywhere we can find it. It's better to violate the "
5009 "cpuset than stress the kernel."
5012 #: build/C/man7/cpuset.7:1091
5014 "Allocations of memory requested by kernel drivers while processing an "
5015 "interrupt lack any relevant process context, and are not confined by cpusets."
5017 "Allocations of memory requested by kernel drivers while processing an "
5018 "interrupt lack any relevant process context, and are not confined by cpusets."
5021 #: build/C/man7/cpuset.7:1091
5023 msgid "Renaming cpusets"
5024 msgstr "Renaming cpusets"
5026 #. ================== ERRORS ==================
5028 #: build/C/man7/cpuset.7:1099
5030 "You can use the B<rename>(2) system call to rename cpusets. Only simple "
5031 "renaming is supported; that is, changing the name of a cpuset directory is "
5032 "permitted, but moving a directory into a different directory is not "
5035 "You can use the B<rename>(2) system call to rename cpusets. Only simple "
5036 "renaming is supported; that is, changing the name of a cpuset directory is "
5037 "permitted, but moving a directory into a different directory is not "
5041 #: build/C/man7/cpuset.7:1103
5043 "The Linux kernel implementation of cpusets sets I<errno> to specify the "
5044 "reason for a failed system call affecting cpusets."
5046 "The Linux kernel implementation of cpusets sets I<errno> to specify the "
5047 "reason for a failed system call affecting cpusets."
5050 #: build/C/man7/cpuset.7:1108
5052 "The possible I<errno> settings and their meaning when set on a failed cpuset "
5053 "call are as listed below."
5055 "The possible I<errno> settings and their meaning when set on a failed cpuset "
5056 "call are as listed below."
5059 #: build/C/man7/cpuset.7:1108
5065 #: build/C/man7/cpuset.7:1115
5067 "Attempted a B<write>(2) on a special cpuset file with a length larger than "
5068 "some kernel-determined upper limit on the length of such writes."
5070 "Attempted a B<write>(2) on a special cpuset file with a length larger than "
5071 "some kernel-determined upper limit on the length of such writes."
5074 #: build/C/man7/cpuset.7:1122
5076 "Attempted to B<write>(2) the process ID (PID) of a process to a cpuset "
5077 "I<tasks> file when one lacks permission to move that process."
5079 "Attempted to B<write>(2) the process ID (PID) of a process to a cpuset "
5080 "I<tasks> file when one lacks permission to move that process."
5083 #: build/C/man7/cpuset.7:1128
5085 "Attempted to add, using B<write>(2), a CPU or memory node to a cpuset, when "
5086 "that CPU or memory node was not already in its parent."
5088 "Attempted to add, using B<write>(2), a CPU or memory node to a cpuset, when "
5089 "that CPU or memory node was not already in its parent."
5092 #: build/C/man7/cpuset.7:1136
5094 "Attempted to set, using B<write>(2), I<cpu_exclusive> or I<mem_exclusive> on "
5095 "a cpuset whose parent lacks the same setting."
5097 "Attempted to set, using B<write>(2), I<cpu_exclusive> or I<mem_exclusive> on "
5098 "a cpuset whose parent lacks the same setting."
5101 #: build/C/man7/cpuset.7:1143
5102 msgid "Attempted to B<write>(2) a I<memory_pressure> file."
5103 msgstr "Attempted to B<write>(2) a I<memory_pressure> file."
5106 #: build/C/man7/cpuset.7:1146
5107 msgid "Attempted to create a file in a cpuset directory."
5108 msgstr "Attempted to create a file in a cpuset directory."
5111 #: build/C/man7/cpuset.7:1146 build/C/man7/cpuset.7:1151
5112 #: build/C/man7/cpuset.7:1156
5118 #: build/C/man7/cpuset.7:1151
5120 "Attempted to remove, using B<rmdir>(2), a cpuset with attached processes."
5122 "Attempted to remove, using B<rmdir>(2), a cpuset with attached processes."
5125 #: build/C/man7/cpuset.7:1156
5126 msgid "Attempted to remove, using B<rmdir>(2), a cpuset with child cpusets."
5127 msgstr "Attempted to remove, using B<rmdir>(2), a cpuset with child cpusets."
5130 #: build/C/man7/cpuset.7:1161
5132 "Attempted to remove a CPU or memory node from a cpuset that is also in a "
5133 "child of that cpuset."
5135 "Attempted to remove a CPU or memory node from a cpuset that is also in a "
5136 "child of that cpuset."
5139 #: build/C/man7/cpuset.7:1161 build/C/man7/cpuset.7:1166
5145 #: build/C/man7/cpuset.7:1166
5146 msgid "Attempted to create, using B<mkdir>(2), a cpuset that already exists."
5147 msgstr "Attempted to create, using B<mkdir>(2), a cpuset that already exists."
5150 #: build/C/man7/cpuset.7:1171
5151 msgid "Attempted to B<rename>(2) a cpuset to a name that already exists."
5152 msgstr "Attempted to B<rename>(2) a cpuset to a name that already exists."
5155 #: build/C/man7/cpuset.7:1179
5157 "Attempted to B<read>(2) or B<write>(2) a cpuset file using a buffer that "
5158 "is outside the writing processes accessible address space."
5160 "Attempted to B<read>(2) or B<write>(2) a cpuset file using a buffer that "
5161 "is outside the writing processes accessible address space."
5164 #: build/C/man7/cpuset.7:1188
5166 "Attempted to change a cpuset, using B<write>(2), in a way that would violate "
5167 "a I<cpu_exclusive> or I<mem_exclusive> attribute of that cpuset or any of "
5170 "Attempted to change a cpuset, using B<write>(2), in a way that would violate "
5171 "a I<cpu_exclusive> or I<mem_exclusive> attribute of that cpuset or any of "
5175 #: build/C/man7/cpuset.7:1197
5177 "Attempted to B<write>(2) an empty I<cpus> or I<mems> list to a cpuset which "
5178 "has attached processes or child cpusets."
5180 "Attempted to B<write>(2) an empty I<cpus> or I<mems> list to a cpuset which "
5181 "has attached processes or child cpusets."
5184 #: build/C/man7/cpuset.7:1207
5186 "Attempted to B<write>(2) a I<cpus> or I<mems> list which included a range "
5187 "with the second number smaller than the first number."
5189 "Attempted to B<write>(2) a I<cpus> or I<mems> list which included a range "
5190 "with the second number smaller than the first number."
5193 #: build/C/man7/cpuset.7:1216
5195 "Attempted to B<write>(2) a I<cpus> or I<mems> list which included an "
5196 "invalid character in the string."
5198 "Attempted to B<write>(2) a I<cpus> or I<mems> list which included an "
5199 "invalid character in the string."
5202 #: build/C/man7/cpuset.7:1223
5204 "Attempted to B<write>(2) a list to a I<cpus> file that did not include any "
5207 "Attempted to B<write>(2) a list to a I<cpus> file that did not include any "
5211 #: build/C/man7/cpuset.7:1230
5213 "Attempted to B<write>(2) a list to a I<mems> file that did not include any "
5214 "online memory nodes."
5216 "Attempted to B<write>(2) a list to a I<mems> file that did not include any "
5217 "online memory nodes."
5220 #: build/C/man7/cpuset.7:1237
5222 "Attempted to B<write>(2) a list to a I<mems> file that included a node that "
5225 "Attempted to B<write>(2) a list to a I<mems> file that included a node that "
5229 #: build/C/man7/cpuset.7:1245
5231 "Attempted to B<write>(2) a string to a cpuset I<tasks> file that does not "
5232 "begin with an ASCII decimal integer."
5234 "Attempted to B<write>(2) a string to a cpuset I<tasks> file that does not "
5235 "begin with an ASCII decimal integer."
5238 #: build/C/man7/cpuset.7:1250
5239 msgid "Attempted to B<rename>(2) a cpuset into a different directory."
5240 msgstr "Attempted to B<rename>(2) a cpuset into a different directory."
5243 #: build/C/man7/cpuset.7:1257
5245 "Attempted to B<read>(2) a I</proc/E<lt>pidE<gt>/cpuset> file for a cpuset "
5246 "path that is longer than the kernel page size."
5248 "Attempted to B<read>(2) a I</proc/E<lt>pidE<gt>/cpuset> file for a cpuset "
5249 "path that is longer than the kernel page size."
5252 #: build/C/man7/cpuset.7:1262
5254 "Attempted to create, using B<mkdir>(2), a cpuset whose base directory name "
5255 "is longer than 255 characters."
5257 "Attempted to create, using B<mkdir>(2), a cpuset whose base directory name "
5258 "is longer than 255 characters."
5261 #: build/C/man7/cpuset.7:1269
5263 "Attempted to create, using B<mkdir>(2), a cpuset whose full pathname, "
5264 "including the mount point (typically \"/dev/cpuset/\") prefix, is longer "
5265 "than 4095 characters."
5267 "Attempted to create, using B<mkdir>(2), a cpuset whose full pathname, "
5268 "including the mount point (typically \"/dev/cpuset/\") prefix, is longer "
5269 "than 4095 characters."
5272 #: build/C/man7/cpuset.7:1269
5278 #: build/C/man7/cpuset.7:1274
5280 "The cpuset was removed by another process at the same time as a B<write>(2) "
5281 "was attempted on one of the pseudo-files in the cpuset directory."
5283 "The cpuset was removed by another process at the same time as a B<write>(2) "
5284 "was attempted on one of the pseudo-files in the cpuset directory."
5287 #: build/C/man7/cpuset.7:1279
5289 "Attempted to create, using B<mkdir>(2), a cpuset in a parent cpuset that "
5292 "Attempted to create, using B<mkdir>(2), a cpuset in a parent cpuset that "
5296 #: build/C/man7/cpuset.7:1286
5298 "Attempted to B<access>(2) or B<open>(2) a nonexistent file in a cpuset "
5301 "Attempted to B<access>(2) or B<open>(2) a nonexistent file in a cpuset "
5305 #: build/C/man7/cpuset.7:1291
5307 "Insufficient memory is available within the kernel; can occur on a variety "
5308 "of system calls affecting cpusets, but only if the system is extremely short "
5311 "Insufficient memory is available within the kernel; can occur on a variety "
5312 "of system calls affecting cpusets, but only if the system is extremely short "
5316 #: build/C/man7/cpuset.7:1291 build/C/man7/cpuset.7:1303
5322 #: build/C/man7/cpuset.7:1303
5324 "Attempted to B<write>(2) the process ID (PID) of a process to a cpuset "
5325 "I<tasks> file when the cpuset had an empty I<cpus> or empty I<mems> setting."
5327 "Attempted to B<write>(2) the process ID (PID) of a process to a cpuset "
5328 "I<tasks> file when the cpuset had an empty I<cpus> or empty I<mems> setting."
5331 #: build/C/man7/cpuset.7:1313
5333 "Attempted to B<write>(2) an empty I<cpus> or I<mems> setting to a cpuset "
5334 "that has tasks attached."
5336 "Attempted to B<write>(2) an empty I<cpus> or I<mems> setting to a cpuset "
5337 "that has tasks attached."
5340 #: build/C/man7/cpuset.7:1318
5341 msgid "Attempted to B<rename>(2) a nonexistent cpuset."
5342 msgstr "Attempted to B<rename>(2) a nonexistent cpuset."
5345 #: build/C/man7/cpuset.7:1321
5346 msgid "Attempted to remove a file from a cpuset directory."
5347 msgstr "Attempted to remove a file from a cpuset directory."
5350 #: build/C/man7/cpuset.7:1321
5356 #: build/C/man7/cpuset.7:1329
5358 "Specified a I<cpus> or I<mems> list to the kernel which included a number "
5359 "too large for the kernel to set in its bitmasks."
5361 "Specified a I<cpus> or I<mems> list to the kernel which included a number "
5362 "too large for the kernel to set in its bitmasks."
5364 #. ================== VERSIONS ==================
5366 #: build/C/man7/cpuset.7:1337
5368 "Attempted to B<write>(2) the process ID (PID) of a nonexistent process to a "
5369 "cpuset I<tasks> file."
5371 "Attempted to B<write>(2) the process ID (PID) of a nonexistent process to a "
5372 "cpuset I<tasks> file."
5374 #. ================== NOTES ==================
5376 #: build/C/man7/cpuset.7:1340
5377 msgid "Cpusets appeared in version 2.6.12 of the Linux kernel."
5378 msgstr "Cpusets appeared in version 2.6.12 of the Linux kernel."
5380 #. ================== BUGS ==================
5382 #: build/C/man7/cpuset.7:1351
5384 "Despite its name, the I<pid> parameter is actually a thread ID, and each "
5385 "thread in a threaded group can be attached to a different cpuset. The value "
5386 "returned from a call to B<gettid>(2) can be passed in the argument I<pid>."
5388 "Despite its name, the I<pid> parameter is actually a thread ID, and each "
5389 "thread in a threaded group can be attached to a different cpuset. The value "
5390 "returned from a call to B<gettid>(2) can be passed in the argument I<pid>."
5393 #: build/C/man7/cpuset.7:1351 build/C/man2/getrlimit.2:576
5394 #: build/C/man2/ioprio_set.2:308 build/C/man2/setfsgid.2:102
5395 #: build/C/man2/setfsuid.2:102
5400 #. ================== EXAMPLE ==================
5402 #: build/C/man7/cpuset.7:1364
5404 "I<memory_pressure> cpuset files can be opened for writing, creation, or "
5405 "truncation, but then the B<write>(2) fails with I<errno> set to B<EACCES>, "
5406 "and the creation and truncation options on B<open>(2) have no effect."
5408 "I<memory_pressure> cpuset files can be opened for writing, creation, or "
5409 "truncation, but then the B<write>(2) fails with I<errno> set to B<EACCES>, "
5410 "and the creation and truncation options on B<open>(2) have no effect."
5413 #: build/C/man7/cpuset.7:1364 build/C/man2/getrlimit.2:520
5419 #: build/C/man7/cpuset.7:1367
5421 "The following examples demonstrate querying and setting cpuset options using "
5424 "The following examples demonstrate querying and setting cpuset options using "
5428 #: build/C/man7/cpuset.7:1367
5430 msgid "Creating and attaching to a cpuset."
5431 msgstr "Creating and attaching to a cpuset."
5434 #: build/C/man7/cpuset.7:1370
5436 "To create a new cpuset and attach the current command shell to it, the steps "
5439 "To create a new cpuset and attach the current command shell to it, the steps "
5443 #: build/C/man7/cpuset.7:1372 build/C/man7/cpuset.7:1411
5449 #: build/C/man7/cpuset.7:1374
5450 msgid "mkdir /dev/cpuset (if not already done)"
5451 msgstr "mkdir /dev/cpuset (if not already done)"
5454 #: build/C/man7/cpuset.7:1374 build/C/man7/cpuset.7:1417
5460 #: build/C/man7/cpuset.7:1376
5461 msgid "mount -t cpuset none /dev/cpuset (if not already done)"
5462 msgstr "mount -t cpuset none /dev/cpuset (if not already done)"
5465 #: build/C/man7/cpuset.7:1376 build/C/man7/cpuset.7:1420
5471 #: build/C/man7/cpuset.7:1379
5472 msgid "Create the new cpuset using B<mkdir>(1)."
5473 msgstr "Create the new cpuset using B<mkdir>(1)."
5476 #: build/C/man7/cpuset.7:1379 build/C/man7/cpuset.7:1423
5482 #: build/C/man7/cpuset.7:1381
5483 msgid "Assign CPUs and memory nodes to the new cpuset."
5484 msgstr "Assign CPUs and memory nodes to the new cpuset."
5487 #: build/C/man7/cpuset.7:1381 build/C/man7/cpuset.7:1428
5493 #: build/C/man7/cpuset.7:1383
5494 msgid "Attach the shell to the new cpuset."
5495 msgstr "Attach the shell to the new cpuset."
5498 #: build/C/man7/cpuset.7:1388
5500 "For example, the following sequence of commands will set up a cpuset named "
5501 "\"Charlie\", containing just CPUs 2 and 3, and memory node 1, and then "
5502 "attach the current shell to that cpuset."
5504 "For example, the following sequence of commands will set up a cpuset named "
5505 "\"Charlie\", containing just CPUs 2 and 3, and memory node 1, and then "
5506 "attach the current shell to that cpuset."
5509 #: build/C/man7/cpuset.7:1402
5512 "$B< mkdir /dev/cpuset>\n"
5513 "$B< mount -t cpuset cpuset /dev/cpuset>\n"
5514 "$B< cd /dev/cpuset>\n"
5515 "$B< mkdir Charlie>\n"
5517 "$B< /bin/echo 2-3 E<gt> cpus>\n"
5518 "$B< /bin/echo 1 E<gt> mems>\n"
5519 "$B< /bin/echo $$ E<gt> tasks>\n"
5520 "# The current shell is now running in cpuset Charlie\n"
5521 "# The next line should display '/Charlie'\n"
5522 "$B< cat /proc/self/cpuset>\n"
5524 "$B< mkdir /dev/cpuset>\n"
5525 "$B< mount -t cpuset cpuset /dev/cpuset>\n"
5526 "$B< cd /dev/cpuset>\n"
5527 "$B< mkdir Charlie>\n"
5529 "$B< /bin/echo 2-3 E<gt> cpus>\n"
5530 "$B< /bin/echo 1 E<gt> mems>\n"
5531 "$B< /bin/echo $$ E<gt> tasks>\n"
5532 "# The current shell is now running in cpuset Charlie\n"
5533 "# The next line should display '/Charlie'\n"
5534 "$B< cat /proc/self/cpuset>\n"
5537 #: build/C/man7/cpuset.7:1404
5539 msgid "Migrating a job to different memory nodes."
5540 msgstr "Migrating a job to different memory nodes."
5543 #: build/C/man7/cpuset.7:1409
5545 "To migrate a job (the set of processes attached to a cpuset) to different "
5546 "CPUs and memory nodes in the system, including moving the memory pages "
5547 "currently allocated to that job, perform the following steps."
5549 "To migrate a job (the set of processes attached to a cpuset) to different "
5550 "CPUs and memory nodes in the system, including moving the memory pages "
5551 "currently allocated to that job, perform the following steps."
5554 #: build/C/man7/cpuset.7:1417
5556 "Let's say we want to move the job in cpuset I<alpha> (CPUs 4-7 and memory "
5557 "nodes 2-3) to a new cpuset I<beta> (CPUs 16-19 and memory nodes 8-9)."
5559 "Let's say we want to move the job in cpuset I<alpha> (CPUs 4-7 and memory "
5560 "nodes 2-3) to a new cpuset I<beta> (CPUs 16-19 and memory nodes 8-9)."
5563 #: build/C/man7/cpuset.7:1420
5564 msgid "First create the new cpuset I<beta>."
5565 msgstr "First create the new cpuset I<beta>."
5568 #: build/C/man7/cpuset.7:1423
5569 msgid "Then allow CPUs 16-19 and memory nodes 8-9 in I<beta>."
5570 msgstr "Then allow CPUs 16-19 and memory nodes 8-9 in I<beta>."
5573 #: build/C/man7/cpuset.7:1428
5574 msgid "Then enable I<memory_migration> in I<beta>."
5575 msgstr "Then enable I<memory_migration> in I<beta>."
5578 #: build/C/man7/cpuset.7:1433
5579 msgid "Then move each process from I<alpha> to I<beta>."
5580 msgstr "Then move each process from I<alpha> to I<beta>."
5583 #: build/C/man7/cpuset.7:1436
5584 msgid "The following sequence of commands accomplishes this."
5585 msgstr "The following sequence of commands accomplishes this."
5588 #: build/C/man7/cpuset.7:1446
5591 "$B< cd /dev/cpuset>\n"
5594 "$B< /bin/echo 16-19 E<gt> cpus>\n"
5595 "$B< /bin/echo 8-9 E<gt> mems>\n"
5596 "$B< /bin/echo 1 E<gt> memory_migrate>\n"
5597 "$B< while read i; do /bin/echo $i; done E<lt> ../alpha/tasks E<gt> tasks>\n"
5599 "$B< cd /dev/cpuset>\n"
5602 "$B< /bin/echo 16-19 E<gt> cpus>\n"
5603 "$B< /bin/echo 8-9 E<gt> mems>\n"
5604 "$B< /bin/echo 1 E<gt> memory_migrate>\n"
5605 "$B< while read i; do /bin/echo $i; done E<lt> ../alpha/tasks E<gt> tasks>\n"
5608 #: build/C/man7/cpuset.7:1455
5610 "The above should move any processes in I<alpha> to I<beta>, and any memory "
5611 "held by these processes on memory nodes 2-3 to memory nodes 8-9, "
5614 "The above should move any processes in I<alpha> to I<beta>, and any memory "
5615 "held by these processes on memory nodes 2-3 to memory nodes 8-9, "
5619 #: build/C/man7/cpuset.7:1457
5620 msgid "Notice that the last step of the above sequence did not do:"
5621 msgstr "Notice that the last step of the above sequence did not do:"
5624 #: build/C/man7/cpuset.7:1461
5626 msgid "$B< cp ../alpha/tasks tasks>\n"
5627 msgstr "$B< cp ../alpha/tasks tasks>\n"
5630 #: build/C/man7/cpuset.7:1472
5632 "The I<while> loop, rather than the seemingly easier use of the B<cp>(1) "
5633 "command, was necessary because only one process PID at a time may be written "
5634 "to the I<tasks> file."
5636 "The I<while> loop, rather than the seemingly easier use of the B<cp>(1) "
5637 "command, was necessary because only one process PID at a time may be written "
5638 "to the I<tasks> file."
5641 #: build/C/man7/cpuset.7:1480
5643 "The same effect (writing one PID at a time) as the I<while> loop can be "
5644 "accomplished more efficiently, in fewer keystrokes and in syntax that works "
5645 "on any shell, but alas more obscurely, by using the B<-u> (unbuffered) "
5646 "option of B<sed>(1):"
5648 "The same effect (writing one PID at a time) as the I<while> loop can be "
5649 "accomplished more efficiently, in fewer keystrokes and in syntax that works "
5650 "on any shell, but alas more obscurely, by using the B<-u> (unbuffered) "
5651 "option of B<sed>(1):"
5654 #: build/C/man7/cpuset.7:1484
5656 msgid "$B< sed -un p E<lt> ../alpha/tasks E<gt> tasks>\n"
5657 msgstr "$B< sed -un p E<lt> ../alpha/tasks E<gt> tasks>\n"
5660 #: build/C/man7/cpuset.7:1501
5662 "B<taskset>(1), B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), "
5663 "B<sched_getaffinity>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), "
5664 "B<set_mempolicy>(2), B<CPU_SET>(3), B<proc>(5), B<numa>(7), B<migratepages>"
5665 "(8), B<numactl>(8)"
5667 "B<taskset>(1), B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), "
5668 "B<sched_getaffinity>(2), B<sched_setaffinity>(2), B<sched_setscheduler>(2), "
5669 "B<set_mempolicy>(2), B<CPU_SET>(3), B<proc>(5), B<numa>(7), B<migratepages>"
5670 "(8), B<numactl>(8)"
5673 #: build/C/man7/cpuset.7:1504
5674 msgid "The kernel source file I<Documentation/cpusets.txt>."
5675 msgstr "The kernel source file I<Documentation/cpusets.txt>."
5678 #: build/C/man7/credentials.7:25
5681 msgstr "CREDENTIALS"
5684 #: build/C/man7/credentials.7:25
5690 #: build/C/man7/credentials.7:28
5691 msgid "credentials - process identifiers"
5692 msgstr "credentials - 認証に用いられるプロセスの識別子"
5695 #: build/C/man7/credentials.7:29
5697 msgid "Process ID (PID)"
5698 msgstr "プロセスID (PID)"
5701 #: build/C/man7/credentials.7:39
5703 "Each process has a unique nonnegative integer identifier that is assigned "
5704 "when the process is created using B<fork>(2). A process can obtain its PID "
5705 "using B<getpid>(2). A PID is represented using the type I<pid_t> (defined "
5706 "in I<E<lt>sys/types.hE<gt>>)."
5708 "各プロセスは、負でない整数の一意な識別子を持つ。 この識別子は B<fork>(2) を"
5709 "使ってプロセスが生成される際に割り当てられる。 プロセスは B<getpid>(2) を"
5710 "使って自分の PID を取得できる。 PID は I<pid_t> 型で表現される (I<pid_t> は "
5711 "I<E<lt>sys/types.hE<gt>> で定義されている)。"
5713 #. .BR sched_rr_get_interval (2),
5714 #. .BR sched_getaffinity (2),
5715 #. .BR sched_setaffinity (2),
5716 #. .BR sched_getparam (2),
5717 #. .BR sched_setparam (2),
5718 #. .BR sched_setscheduler (2),
5719 #. .BR sched_getscheduler (2),
5724 #: build/C/man7/credentials.7:60
5726 "PIDs are used in a range of system calls to identify the process affected by "
5727 "the call, for example: B<kill>(2), B<ptrace>(2), B<setpriority>(2) "
5728 "B<setpgid>(2), B<setsid>(2), B<sigqueue>(3), and B<waitpid>(2)."
5730 "PID は各種のシステムコールでそのシステムコールが作用するプロセスを 特定するた"
5731 "めに使用される。以下に例を挙げる: B<kill>(2), B<ptrace>(2), B<setpriority>"
5732 "(2), B<setpgid>(2), B<setsid>(2), B<sigqueue>(3), B<waitpid>(2)."
5735 #: build/C/man7/credentials.7:63
5736 msgid "A process's PID is preserved across an B<execve>(2)."
5737 msgstr "プロセスの PID は B<execve>(2) の前後で不変である。"
5740 #: build/C/man7/credentials.7:63
5742 msgid "Parent Process ID (PPID)"
5743 msgstr "親プロセス ID (PPID)"
5746 #: build/C/man7/credentials.7:71
5748 "A process's parent process ID identifies the process that created this "
5749 "process using B<fork>(2). A process can obtain its PPID using B<getppid>"
5750 "(2). A PPID is represented using the type I<pid_t>."
5752 "プロセスの親プロセスの ID は、 B<fork>(2) を使ってそのプロセスを生成したプロ"
5753 "セスを示す。 プロセスは B<getppid>(2) を使って自分の PPID を取得できる。 "
5754 "PPID は I<pid_t> 型で表現される。"
5757 #: build/C/man7/credentials.7:74
5758 msgid "A process's PPID is preserved across an B<execve>(2)."
5759 msgstr "プロセスの PPID は B<execve>(2) の前後で不変である。"
5762 #: build/C/man7/credentials.7:74
5764 msgid "Process Group ID and Session ID"
5765 msgstr "プロセスグループ ID とセッション ID"
5768 #: build/C/man7/credentials.7:82
5770 "Each process has a session ID and a process group ID, both represented using "
5771 "the type I<pid_t>. A process can obtain its session ID using B<getsid>(2), "
5772 "and its process group ID using B<getpgrp>(2)."
5774 "各プロセスはセッション ID とプロセスグループ ID を持つ。 これらの ID はどちら"
5775 "も I<pid_t> 型で表現される。 プロセスは、それぞれ B<getsid>(2), B<getpgrp>"
5776 "(2) を使って自分のセッション ID、プロセスグループ ID を取得できる。"
5779 #: build/C/man7/credentials.7:88
5781 "A child created by B<fork>(2) inherits its parent's session ID and process "
5782 "group ID. A process's session ID and process group ID are preserved across "
5785 "B<fork>(2) で生成された子プロセスは親プロセスのセッション ID とプロセスグ"
5786 "ループ ID を継承する。プロセスのセッション ID とプロセスグループ ID は "
5787 "B<execve>(2) の前後で不変である。"
5790 #: build/C/man7/credentials.7:101
5792 "Sessions and process groups are abstractions devised to support shell job "
5793 "control. A process group (sometimes called a \"job\") is a collection of "
5794 "processes that share the same process group ID; the shell creates a new "
5795 "process group for the process(es) used to execute single command or pipeline "
5796 "(e.g., the two processes created to execute the command \"ls\\ |\\ wc\" are "
5797 "placed in the same process group). A process's group membership can be set "
5798 "using B<setpgid>(2). The process whose process ID is the same as its "
5799 "process group ID is the I<process group leader> for that group."
5801 "セッションとプロセスグループの概念は、シェルのジョブ制御を行うために 考案され"
5802 "たものである。 プロセスグループ (時には「ジョブ」と呼ばれることもある) は、 "
5803 "同じプロセスグループ ID を共有するプロセスの集まりである。 シェルは、一つのコ"
5804 "マンドもしくはパイプラインの実行に使われるプロセス群に 対して一つのプロセスグ"
5805 "ループを生成する (例えば、コマンド \"ls\\ |\\ wc\" を実行するために生成される"
5806 "二つのプロセスは 同じプロセスグループに置かれる)。 所属するプロセスグループ"
5807 "は B<setpgid>(2) を使って設定できる。 自身のプロセス ID がプロセスグループ "
5808 "ID と同じプロセスは、 そのグループの「プロセスグループ・リーダー」である。"
5811 #: build/C/man7/credentials.7:113
5813 "A session is a collection of processes that share the same session ID. All "
5814 "of the members of a process group also have the same session ID (i.e., all "
5815 "of the members of a process group always belong to the same session, so that "
5816 "sessions and process groups form a strict two-level hierarchy of "
5817 "processes.) A new session is created when a process calls B<setsid>(2), "
5818 "which creates a new session whose session ID is the same as the PID of the "
5819 "process that called B<setsid>(2). The creator of the session is called the "
5820 "I<session leader>."
5822 "セッションは、同じセッション ID を共有するプロセスの集まりである。 ある一つの"
5823 "プロセスグループの全メンバーは同じセッション ID を持つ (つまり、一つのプロセ"
5824 "スグループのメンバーは全て同じセッションに所属し、 これにより、セッションとプ"
5825 "ロセスグループで二階層のプロセス階層が形成できる)。 新たなセッションの生成は"
5826 "プロセスが B<setsid>(2) を呼び出すことで行う。 B<setsid>(2) は、 B<setsid>"
5827 "(2) を呼び出したプロセスの PID と同じ値のセッション ID を持つ 新たなセッショ"
5828 "ンを生成する。 セッションの生成者は「セッション・リーダー」と呼ばれる。"
5831 #: build/C/man7/credentials.7:113
5833 msgid "User and Group Identifiers"
5834 msgstr "ユーザ ID とグループ ID"
5837 #: build/C/man7/credentials.7:121
5839 "Each process has various associated user and groups IDs. These IDs are "
5840 "integers, respectively represented using the types I<uid_t> and I<gid_t> "
5841 "(defined in I<E<lt>sys/types.hE<gt>>)."
5843 "各プロセスは、数種類のユーザ ID とグループ ID を持つ。 ユーザ ID、グループ "
5844 "ID は整数で、それぞれ I<uid_t>, I<gid_t> 型で表現される (これらは I<E<lt>sys/"
5845 "types.hE<gt>> で定義されている)。"
5848 #: build/C/man7/credentials.7:123
5849 msgid "On Linux, each process has the following user and group identifiers:"
5851 "Linux では、各プロセスは以下のような種類のユーザ ID とグループ ID を持つ。"
5854 #: build/C/man7/credentials.7:129
5856 "Real user ID and real group ID. These IDs determine who owns the process. "
5857 "A process can obtain its real user (group) ID using B<getuid>(2) (B<getgid>"
5860 "実ユーザ ID と実グループ ID。 これらの ID によりプロセスの所有者が決定され"
5861 "る。 プロセスが自分の実ユーザ ID、実グループ ID を取得するには、それぞれ "
5862 "B<getuid>(2), B<getgid>(2) を使用する。"
5865 #: build/C/man7/credentials.7:141
5867 "Effective user ID and effective group ID. These IDs are used by the kernel "
5868 "to determine the permissions that the process will have when accessing "
5869 "shared resources such as message queues, shared memory, and semaphores. On "
5870 "most UNIX systems, these IDs also determine the permissions when accessing "
5871 "files. However, Linux uses the file system IDs described below for this "
5872 "task. A process can obtain its effective user (group) ID using B<geteuid>"
5873 "(2) (B<getegid>(2))."
5875 "実効ユーザ ID と実効グループ ID。 これらの ID は、メッセージキュー、共有メモ"
5876 "リ、セマフォなどの 共有リソースにアクセスしようとした際にそのプロセスがアクセ"
5877 "ス許可を 持っているかをカーネルが判定するのに使用される。 ほとんどの UNIX シ"
5878 "ステムでは、これらの ID はファイルへのアクセス時の アクセス許可の判定にも使用"
5879 "される。 しかしながら、Linux ではファイルへのアクセス許可の判定には 後述の"
5880 "ファイルシステム ID が使用される。 プロセスが自分の実効ユーザ ID、実効グルー"
5881 "プ ID を取得するには、それぞれ B<geteuid>(2), B<getegid>(2) を使用する。"
5884 #: build/C/man7/credentials.7:163
5886 "Saved set-user-ID and saved set-group-ID. These IDs are used in set-user-ID "
5887 "and set-group-ID programs to save a copy of the corresponding effective IDs "
5888 "that were set when the program was executed (see B<execve>(2)). A set-user-"
5889 "ID program can assume and drop privileges by switching its effective user ID "
5890 "back and forth between the values in its real user ID and saved set-user-"
5891 "ID. This switching is done via calls to B<seteuid>(2), B<setreuid>(2), or "
5892 "B<setresuid>(2). A set-group-ID program performs the analogous tasks using "
5893 "B<setegid>(2), B<setregid>(2), or B<setresgid>(2). A process can obtain its "
5894 "saved set-user-ID (set-group-ID) using B<getresuid>(2) (B<getresgid>(2))."
5896 "保存 (saved) set-user-ID と保存 set-group-ID。 これらの ID は、set-user-ID "
5897 "や set-group-ID されたプログラムにおいて、 プログラムの実行時に設定された実"
5898 "効 ID のコピーを保存するために 使用される (B<execve>(2) 参照)。 set-user-ID "
5899 "プログラムは、実効ユーザ ID を実ユーザID と保存 set-user-ID の間で行ったり来"
5900 "たり切り替えることで、特権を得たり落としたりできる。 この切り替えは "
5901 "B<seteuid>(2), B<setreuid>(2), B<setresuid>(2) を呼び出すことで実行できる。 "
5902 "set-group-ID プログラムは、 B<setegid>(2), B<setregid>(2), B<setresgid>(2) "
5903 "を使って同様のことができる。 プロセスが自分の保存 set-user-ID、保存 set-"
5904 "group-ID を取得するには、 B<getresuid(2),> B<getresgids>(2) をそれぞれ使用す"
5908 #: build/C/man7/credentials.7:180
5910 "File system user ID and file system group ID (Linux-specific). These IDs, "
5911 "in conjunction with the supplementary group IDs described below, are used to "
5912 "determine permissions for accessing files; see B<path_resolution>(7) for "
5913 "details. Whenever a process's effective user (group) ID is changed, the "
5914 "kernel also automatically changes the file system user (group) ID to the "
5915 "same value. Consequently, the file system IDs normally have the same values "
5916 "as the corresponding effective ID, and the semantics for file-permission "
5917 "checks are thus the same on Linux as on other UNIX systems. The file system "
5918 "IDs can be made to differ from the effective IDs by calling B<setfsuid>(2) "
5919 "and B<setfsgid>(2)."
5921 "ファイルシステム・ユーザ ID とファイルシステム・グループ ID (Linux 固有)。 こ"
5922 "れらの ID は、後述の補助グループ ID と組み合わせて使用され、 ファイルへのアク"
5923 "セス権の決定に利用される。詳細は B<path_resolution>(7) を参照。 プロセスの実"
5924 "効 ID (ユーザ ID や グループ ID) が変更されるたびに、 カーネルは自動的に対応"
5925 "するファイルシステム ID を同じ値に変更する。 その結果、ファイルシステム ID は"
5926 "通常は対応する実効 ID と同じ値となり、 ファイルのアクセス権のチェック方法は "
5927 "Linux と他の UNIX システムで同じである。 ファイルシステム ID は実効 ID とは異"
5928 "なる値にすることができ、 変更は B<setfsuid>(2) と B<setfsgid>(2) を呼び出し"
5931 #. Since kernel 2.6.4, the limit is visible via the read-only file
5932 #. /proc/sys/kernel/ngroups_max.
5933 #. As at 2.6.22-rc2, this file is still read-only.
5935 #: build/C/man7/credentials.7:199
5937 "Supplementary group IDs. This is a set of additional group IDs that are "
5938 "used for permission checks when accessing files and other shared resources. "
5939 "On Linux kernels before 2.6.4, a process can be a member of up to 32 "
5940 "supplementary groups; since kernel 2.6.4, a process can be a member of up to "
5941 "65536 supplementary groups. The call I<sysconf(_SC_NGROUPS_MAX)> can be "
5942 "used to determine the number of supplementary groups of which a process may "
5943 "be a member. A process can obtain its set of supplementary group IDs using "
5944 "B<getgroups>(2), and can modify the set using B<setgroups>(2)."
5946 "補助グループ ID。 この ID は、ファイルや他の共有リソースへのアクセス時にアク"
5947 "セス許可の チェックに使用される、追加のグループ ID の集合である。 カーネル "
5948 "2.6.4 より前の Linux では、一つのプロセスあたりの 補助グループのメンバー数は"
5949 "最大で 32 である。 カーネル 2.6.4 以降では、一つのプロセスあたりの 補助グルー"
5950 "プのメンバー数は最大で 65536 である。 I<sysconf(_SC_NGROUPS_MAX)> を呼び出す"
5951 "ことで、あるプロセスがメンバーとなることができる可能性のある 補助グループ数を"
5952 "知ることができる。 プロセスは、自分の補助グループ ID の集合を B<getgroups>"
5953 "(2) で取得でき、 B<setgroups>(2) で集合を変更できる。"
5956 #: build/C/man7/credentials.7:209
5958 "A child process created by B<fork>(2) inherits copies of its parent's user "
5959 "and groups IDs. During an B<execve>(2), a process's real user and group ID "
5960 "and supplementary group IDs are preserved; the effective and saved set IDs "
5961 "may be changed, as described in B<execve>(2)."
5963 "B<fork>(2) で生成された子プロセスは親プロセスのユーザ ID とグループ ID を継"
5964 "承する。 B<execve>(2) の間、プロセスの実ユーザ/グループ ID と補助グループ "
5965 "ID 集合は不変である。 実効 ID と保存セット ID は変更される可能性がある "
5966 "(B<execve>(2) で説明されている)。"
5969 #: build/C/man7/credentials.7:212
5971 "Aside from the purposes noted above, a process's user IDs are also employed "
5972 "in a number of other contexts:"
5973 msgstr "上記の目的以外にも、プロセスのユーザ ID は他の様々な場面で利用される。"
5976 #: build/C/man7/credentials.7:215
5978 "when determining the permissions for sending signals\\(emsee B<kill>(2);"
5979 msgstr "シグナルを送る許可の判定時\\(em B<kill>(2) 参照。"
5982 #: build/C/man7/credentials.7:225
5984 "when determining the permissions for setting process-scheduling parameters "
5985 "(nice value, real time scheduling policy and priority, CPU affinity, I/O "
5986 "priority) using B<setpriority>(2), B<sched_setaffinity>(2), "
5987 "B<sched_setscheduler>(2), B<sched_setparam>(2), and B<ioprio_set>(2);"
5989 "プロセスのスケジューリング関連のパラメータ (nice 値、 リアルタイム・スケ"
5990 "ジューリングポリシーや優先度、CPU affinity、 入出力優先度) の設定許可の判定"
5991 "時。 スケジューリング関連のパラメータ設定には B<setpriority>(2), "
5992 "B<sched_setaffinity>(2), B<sched_setscheduler>(2), B<sched_setparam>(2), "
5993 "B<ioprio_set>(2) が使用される。"
5996 #: build/C/man7/credentials.7:228
5997 msgid "when checking resource limits; see B<getrlimit>(2);"
5998 msgstr "リソース上限のチェック時。 B<getrlimit>(2) 参照。"
6001 #: build/C/man7/credentials.7:232
6003 "when checking the limit on the number of inotify instances that the process "
6004 "may create; see B<inotify>(7)."
6006 "プロセスが生成できる inotify インスタンス数の上限のチェック時。 B<inotify>"
6010 #: build/C/man7/credentials.7:238
6012 "Process IDs, parent process IDs, process group IDs, and session IDs are "
6013 "specified in POSIX.1-2001. The real, effective, and saved set user and "
6014 "groups IDs, and the supplementary group IDs, are specified in POSIX.1-2001. "
6015 "The file system user and group IDs are a Linux extension."
6017 "プロセス ID、親プロセス ID、プロセスグループ ID、セッション ID は "
6018 "POSIX.1-2001 で規定されている。 実 ID、実効 ID、保存セット ID のユーザ ID / "
6019 "グループ ID および 補助グループ ID は POSIX.1-2001 で規定されている。 ファイ"
6020 "ルシステム・ユーザ ID / グループ ID は Linux による拡張である。"
6023 #: build/C/man7/credentials.7:250
6025 "The POSIX threads specification requires that credentials are shared by all "
6026 "of the threads in a process. However, at the kernel level, Linux maintains "
6027 "separate user and group credentials for each thread. The NPTL threading "
6028 "implementation does some work to ensure that any change to user or group "
6029 "credentials (e.g., calls to B<setuid>(2), B<setresuid>(2), etc.) is carried "
6030 "through to all of the POSIX threads in a process."
6032 "POSIX のスレッド仕様では、これらの識別子がプロセス内の全スレッドで 共有される"
6033 "ことを求めている。 しかしながら、カーネルのレベルでは、Linux はスレッド毎に"
6034 "別々の ユーザとグループに関する識別子を管理している。 NPTL スレッド実装が、"
6035 "(例えば B<setuid>(2), B<setresuid>(2) などの呼び出しによる) ユーザやグループ"
6036 "に関する識別子に対する変更が プロセス内の全ての POSIX スレッドに対して反映さ"
6037 "れることを保証する ための処理を行っている。"
6040 #: build/C/man7/credentials.7:281
6042 "B<bash>(1), B<csh>(1), B<ps>(1), B<access>(2), B<execve>(2), B<faccessat>"
6043 "(2), B<fork>(2), B<getpgrp>(2), B<getpid>(2), B<getppid>(2), B<getsid>(2), "
6044 "B<kill>(2), B<killpg>(2), B<setegid>(2), B<seteuid>(2), B<setfsgid>(2), "
6045 "B<setfsuid>(2), B<setgid>(2), B<setgroups>(2), B<setresgid>(2), B<setresuid>"
6046 "(2), B<setuid>(2), B<waitpid>(2), B<euidaccess>(3), B<initgroups>(3), "
6047 "B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<capabilities>(7), B<path_resolution>(7), "
6050 "B<bash>(1), B<csh>(1), B<ps>(1), B<access>(2), B<execve>(2), B<faccessat>"
6051 "(2), B<fork>(2), B<getpgrp>(2), B<getpid>(2), B<getppid>(2), B<getsid>(2), "
6052 "B<kill>(2), B<killpg>(2), B<setegid>(2), B<seteuid>(2), B<setfsgid>(2), "
6053 "B<setfsuid>(2), B<setgid>(2), B<setgroups>(2), B<setresgid>(2), B<setresuid>"
6054 "(2), B<setuid>(2), B<waitpid>(2), B<euidaccess>(3), B<initgroups>(3), "
6055 "B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<capabilities>(7), B<path_resolution>(7), "
6059 #: build/C/man2/getgid.2:25
6065 #: build/C/man2/getgid.2:25 build/C/man2/getgroups.2:31
6066 #: build/C/man2/getresuid.2:27 build/C/man2/getuid.2:26
6067 #: build/C/man2/setfsgid.2:29 build/C/man2/setfsuid.2:29
6068 #: build/C/man2/setgid.2:27 build/C/man2/setresuid.2:26
6069 #: build/C/man2/setreuid.2:43 build/C/man2/setuid.2:28
6071 #| msgid "2008-11-12"
6076 #: build/C/man2/getgid.2:28
6077 msgid "getgid, getegid - get group identity"
6078 msgstr "getgid, getegid - グループ ID を得る"
6081 #: build/C/man2/getgid.2:30 build/C/man2/getgroups.2:38
6082 #: build/C/man2/getpid.2:30 build/C/man2/getresuid.2:34
6083 #: build/C/man2/getsid.2:30 build/C/man2/getuid.2:31 build/C/man2/seteuid.2:34
6084 #: build/C/man2/setgid.2:34 build/C/man2/setpgid.2:51
6085 #: build/C/man2/setresuid.2:33 build/C/man2/setreuid.2:50
6086 #: build/C/man2/setsid.2:35 build/C/man2/setuid.2:35
6087 msgid "B<#include E<lt>unistd.hE<gt>>"
6088 msgstr "B<#include E<lt>unistd.hE<gt>>"
6091 #: build/C/man2/getgid.2:32 build/C/man2/getgroups.2:36
6092 #: build/C/man2/getpid.2:28 build/C/man2/getuid.2:33 build/C/man2/seteuid.2:32
6093 #: build/C/man2/setgid.2:32 build/C/man2/setreuid.2:48
6094 #: build/C/man2/setuid.2:33
6095 msgid "B<#include E<lt>sys/types.hE<gt>>"
6096 msgstr "B<#include E<lt>sys/types.hE<gt>>"
6099 #: build/C/man2/getgid.2:34
6100 msgid "B<gid_t getgid(void);>"
6101 msgstr "B<gid_t getgid(void);>"
6104 #: build/C/man2/getgid.2:36
6105 msgid "B<gid_t getegid(void);>"
6106 msgstr "B<gid_t getegid(void);>"
6109 #: build/C/man2/getgid.2:39
6110 msgid "B<getgid>() returns the real group ID of the calling process."
6111 msgstr "B<getgid>() は呼び出し元のプロセスの実グループ ID を返す。"
6114 #: build/C/man2/getgid.2:42
6115 msgid "B<getegid>() returns the effective group ID of the calling process."
6116 msgstr "B<getegid>() は呼び出し元のプロセスの実効グループ ID を返す。"
6119 #: build/C/man2/getgid.2:44 build/C/man2/getpid.2:44 build/C/man2/getuid.2:45
6120 msgid "These functions are always successful."
6121 msgstr "これらの関数は常に成功する。"
6124 #: build/C/man2/getgid.2:46 build/C/man2/getuid.2:47
6125 msgid "POSIX.1-2001, 4.3BSD."
6126 msgstr "POSIX.1-2001, 4.3BSD."
6129 #: build/C/man2/getgid.2:62
6131 "The original Linux B<getgid>() and B<getegid>() system calls supported "
6132 "only 16-bit group IDs. Subsequently, Linux 2.4 added B<getgid32>() and "
6133 "B<getegid32>(), supporting 32-bit IDs. The glibc B<getgid>() and B<getegid>"
6134 "() wrapper functions transparently deal with the variations across kernel "
6139 #: build/C/man2/getgid.2:67
6140 msgid "B<getresgid>(2), B<setgid>(2), B<setregid>(2), B<credentials>(7)"
6141 msgstr "B<getresgid>(2), B<setgid>(2), B<setregid>(2), B<credentials>(7)"
6144 #: build/C/man2/getgroups.2:31
6150 #: build/C/man2/getgroups.2:34
6151 msgid "getgroups, setgroups - get/set list of supplementary group IDs"
6152 msgstr "getgroups, setgroups - 補助グループ ID のリストを取得/設定する"
6155 #: build/C/man2/getgroups.2:40
6156 msgid "B<int getgroups(int >I<size>B<, gid_t >I<list>B<[]);>"
6157 msgstr "B<int getgroups(int >I<size>B<, gid_t >I<list>B<[]);>"
6160 #: build/C/man2/getgroups.2:42
6161 msgid "B<#include E<lt>grp.hE<gt>>"
6162 msgstr "B<#include E<lt>grp.hE<gt>>"
6165 #: build/C/man2/getgroups.2:44
6166 msgid "B<int setgroups(size_t >I<size>B<, const gid_t *>I<list>B<);>"
6167 msgstr "B<int setgroups(size_t >I<size>B<, const gid_t *>I<list>B<);>"
6170 #: build/C/man2/getgroups.2:52
6171 msgid "B<setgroups>(): _BSD_SOURCE"
6172 msgstr "B<setgroups>(): _BSD_SOURCE"
6175 #: build/C/man2/getgroups.2:70
6177 "B<getgroups>() returns the supplementary group IDs of the calling process "
6178 "in I<list>. The argument I<size> should be set to the maximum number of "
6179 "items that can be stored in the buffer pointed to by I<list>. If the "
6180 "calling process is a member of more than I<size> supplementary groups, then "
6181 "an error results. It is unspecified whether the effective group ID of the "
6182 "calling process is included in the returned list. (Thus, an application "
6183 "should also call B<getegid>(2) and add or remove the resulting value.)"
6185 "B<getgroups>() は呼び出し元プロセスの補助グループ (supplementary group) ID "
6186 "を I<list> に返す。 I<size> 引き数には、 I<list> により参照されるバッファに格"
6187 "納できる要素の最大数を設定すべきである。 呼び出し元プロセスが I<size> 個より"
6188 "多くの補助グループのメンバの場合には、エラーとなる。 この関数を呼び出したプロ"
6189 "セスの実効グループ ID が、 返されるリストに含まれるかどうかは規定されていな"
6190 "い (したがって、アプリケーションは B<getegid>(2) を呼び出し、その結果の値を"
6194 #: build/C/man2/getgroups.2:81
6196 "If I<size> is zero, I<list> is not modified, but the total number of "
6197 "supplementary group IDs for the process is returned. This allows the caller "
6198 "to determine the size of a dynamically allocated I<list> to be used in a "
6199 "further call to B<getgroups>()."
6201 "I<size> が 0 ならば、 I<list> は修正されないが、そのプロセスの補助グループ "
6202 "ID の合計数が返される。 これを使うことで、それ以降の B<getgroups>() の呼び出"
6203 "しで必要となる動的割り当てバッファ I<list> のサイズを、呼び出し元が決定するこ"
6207 #: build/C/man2/getgroups.2:92
6209 "B<setgroups>() sets the supplementary group IDs for the calling process. "
6210 "Appropriate privileges (Linux: the B<CAP_SETGID> capability) are required. "
6211 "The I<size> argument specifies the number of supplementary group IDs in the "
6212 "buffer pointed to by I<list>."
6214 "B<setgroups>() は、呼び出し元プロセスの補助グループ ID を設定する。 適切な特"
6215 "権 (Linux では B<CAP_SETGID> ケーパビリティ (capability)) が必要である。 "
6216 "I<size> 引き数には、 I<list> により参照されるバッファに格納された補助グルー"
6220 #: build/C/man2/getgroups.2:99
6222 "On success, B<getgroups>() returns the number of supplementary group IDs. "
6223 "On error, -1 is returned, and I<errno> is set appropriately."
6225 "B<getgroups>() は、成功すると補助グループ ID の数を返す。 エラーの場合 -1 を"
6226 "返し、 I<errno> を適切に設定する。"
6229 #: build/C/man2/getgroups.2:106
6231 "On success, B<setgroups>() returns 0. On error, -1 is returned, and "
6232 "I<errno> is set appropriately."
6234 "B<setgroups>() は、成功すると 0 を返す。 エラーの場合 -1 を返し、 I<errno> "
6238 #: build/C/man2/getgroups.2:111
6239 msgid "I<list> has an invalid address."
6240 msgstr "I<list> が不正なアドレスである。"
6243 #: build/C/man2/getgroups.2:114
6244 msgid "B<getgroups>() can additionally fail with the following error:"
6245 msgstr "B<getgroups>() は、上記に加えて以下のエラーで失敗する可能性がある。"
6248 #: build/C/man2/getgroups.2:118
6250 "I<size> is less than the number of supplementary group IDs, but is not zero."
6251 msgstr "I<size> が補助グループ ID の数より小さいが 0 でない。"
6254 #: build/C/man2/getgroups.2:121
6255 msgid "B<setgroups>() can additionally fail with the following errors:"
6256 msgstr "B<setgroups>() は、上記に加えて以下のエラーで失敗する可能性がある。"
6259 #: build/C/man2/getgroups.2:127
6261 "I<size> is greater than B<NGROUPS_MAX> (32 before Linux 2.6.4; 65536 since "
6264 "I<size> が B<NGROUPS_MAX> より大きい (B<NGROUPS_MAX> は Linux 2.6.4 より前で"
6265 "は 32、Linux 2.6.4 以降では 65536)。"
6268 #: build/C/man2/getgroups.2:133
6269 msgid "The calling process has insufficient privilege."
6270 msgstr "呼び出し元プロセスが十分な特権を持っていない。"
6273 #: build/C/man2/getgroups.2:141
6275 "SVr4, 4.3BSD. The B<getgroups>() function is in POSIX.1-2001. Since "
6276 "B<setgroups>() requires privilege, it is not covered by POSIX.1-2001."
6278 "SVr4, 4.3BSD. B<getgroups>() 関数は POSIX.1-2001 に準拠している。 "
6279 "B<setgroups>() は特権を必要とするため、POSIX.1-2001 に従っていない。"
6282 #: build/C/man2/getgroups.2:149
6284 "A process can have up to B<NGROUPS_MAX> supplementary group IDs in addition "
6285 "to the effective group ID. The set of supplementary group IDs is inherited "
6286 "from the parent process, and preserved across an B<execve>(2)."
6288 "プロセスは、実効グループ ID に加え、最大 B<NGROUPS_MAX> までの補助グループ "
6289 "ID を持つことができる。 補助グループ ID の集合は親プロセスから継承され、 "
6290 "B<execve>(2) の前後で保持される。"
6293 #: build/C/man2/getgroups.2:152
6295 "The maximum number of supplementary group IDs can be found using B<sysconf>"
6298 "補助グループ ID の最大数は B<sysconf>(3) を使って以下のようにして調べること"
6302 #: build/C/man2/getgroups.2:156
6305 " long ngroups_max;\n"
6306 " ngroups_max = sysconf(_SC_NGROUPS_MAX);\n"
6308 " long ngroups_max;\n"
6309 " ngroups_max = sysconf(_SC_NGROUPS_MAX);\n"
6312 #: build/C/man2/getgroups.2:161
6314 "The maximum return value of B<getgroups>() cannot be larger than one more "
6317 "B<getgroups>() の返り値の最大値は、この値より 1 大きい値より大きくなることは"
6321 #: build/C/man2/getgroups.2:171
6323 "The original Linux B<getgroups>() system call supported only 16-bit group "
6324 "IDs. Subsequently, Linux 2.4 added B<getgroups32>(), supporting 32-bit "
6325 "IDs. The glibc B<getgroups>() wrapper function transparently deals with "
6326 "the variation across kernel versions."
6330 #: build/C/man2/getgroups.2:178
6332 "B<getgid>(2), B<setgid>(2), B<getgrouplist>(3), B<initgroups>(3), "
6333 "B<capabilities>(7), B<credentials>(7)"
6335 "B<getgid>(2), B<setgid>(2), B<getgrouplist>(3), B<initgroups>(3), "
6336 "B<capabilities>(7), B<credentials>(7)"
6339 #: build/C/man2/getpid.2:23
6345 #: build/C/man2/getpid.2:23
6351 #: build/C/man2/getpid.2:26
6352 msgid "getpid, getppid - get process identification"
6353 msgstr "getpid, getppid - プロセス ID を得る"
6356 #: build/C/man2/getpid.2:32
6357 msgid "B<pid_t getpid(void);>"
6358 msgstr "B<pid_t getpid(void);>"
6361 #: build/C/man2/getpid.2:34
6362 msgid "B<pid_t getppid(void);>"
6363 msgstr "B<pid_t getppid(void);>"
6366 #: build/C/man2/getpid.2:39
6368 "B<getpid>() returns the process ID of the calling process. (This is often "
6369 "used by routines that generate unique temporary filenames.)"
6371 "B<getpid>() は呼び出し元のプロセスのプロセス ID を返す。(テンポラリ用のファ"
6372 "イル名として 他と重ならない名前を生成するルーチンでしばしば使用される。)"
6375 #: build/C/man2/getpid.2:42
6377 "B<getppid>() returns the process ID of the parent of the calling process."
6378 msgstr "B<getppid>() は呼び出し元のプロセスの親プロセスのプロセス ID を返す。"
6381 #: build/C/man2/getpid.2:46
6382 msgid "POSIX.1-2001, 4.3BSD, SVr4."
6383 msgstr "POSIX.1-2001, 4.3BSD, SVr4."
6385 #. The following program demonstrates this "feature":
6386 #. #define _GNU_SOURCE
6387 #. #include <sys/syscall.h>
6388 #. #include <sys/wait.h>
6389 #. #include <stdio.h>
6390 #. #include <stdlib.h>
6391 #. #include <unistd.h>
6393 #. main(int argc, char *argv[])
6395 #. /* The following statement fills the getpid() cache */
6396 #. printf("parent PID = %ld
6397 #. ", (long) getpid());
6398 #. if (syscall(SYS_fork) == 0) {
6399 #. if (getpid() != syscall(SYS_getpid))
6400 #. printf("child getpid() mismatch: getpid()=%ld; "
6401 #. "syscall(SYS_getpid)=%ld
6403 #. (long) getpid(), (long) syscall(SYS_getpid));
6404 #. exit(EXIT_SUCCESS);
6409 #: build/C/man2/getpid.2:98
6411 "Since glibc version 2.3.4, the glibc wrapper function for B<getpid>() "
6412 "caches PIDs, so as to avoid additional system calls when a process calls "
6413 "B<getpid>() repeatedly. Normally this caching is invisible, but its "
6414 "correct operation relies on support in the wrapper functions for B<fork>(2), "
6415 "B<vfork>(2), and B<clone>(2): if an application bypasses the glibc wrappers "
6416 "for these system calls by using B<syscall>(2), then a call to B<getpid>() "
6417 "in the child will return the wrong value (to be precise: it will return the "
6418 "PID of the parent process). See also B<clone>(2) for discussion of a case "
6419 "where B<getpid>() may return the wrong value even when invoking B<clone>"
6420 "(2) via the glibc wrapper function."
6422 "glibc バージョン 2.3.4 以降では、 glibc の B<getpid>() のラッパー関数は PID "
6423 "をキャッシュする。 これは、プロセスが繰り返し B<getpid>() を呼び出した場合に"
6424 "その都度システムコールを呼ぶのを避けるためである。 通常は、このキャッシュ処理"
6425 "が見えることはないが、 キャッシュ処理が正しく働くためには B<fork>(2), "
6426 "B<vfork>(2), B<clone>(2) のラッパー関数でのサポートが必要である。 アプリケー"
6427 "ションがこれらのシステムコールを呼び出す際に、 glibc のラッパー関数を経由せず"
6428 "に B<syscall>(2) を使った場合には、子プロセスで B<getpid>() を呼び出すと間"
6429 "違った値が返ることだろう (正確にいうと、親プロセスの PID が返される)。 "
6430 "B<clone>(2) を glibc のラッパー関数経由で起動した際にも B<getpid>() が間"
6431 "違った値を返す場合があり、これに関する議論は B<clone>(2) も参照してほしい。"
6434 #: build/C/man2/getpid.2:108
6436 "B<clone>(2), B<fork>(2), B<kill>(2), B<exec>(3), B<mkstemp>(3), B<tempnam>"
6437 "(3), B<tmpfile>(3), B<tmpnam>(3), B<credentials>(7)"
6439 "B<clone>(2), B<fork>(2), B<kill>(2), B<exec>(3), B<mkstemp>(3), B<tempnam>"
6440 "(3), B<tmpfile>(3), B<tmpnam>(3), B<credentials>(7)"
6443 #: build/C/man2/getpriority.2:46
6446 msgstr "GETPRIORITY"
6449 #: build/C/man2/getpriority.2:46
6455 #: build/C/man2/getpriority.2:49
6456 msgid "getpriority, setpriority - get/set program scheduling priority"
6458 "getpriority, setpriority - プログラムのスケジューリングの優先度を取得/設定す"
6462 #: build/C/man2/getpriority.2:51 build/C/man2/getrlimit.2:69
6463 #: build/C/man2/getrusage.2:44
6464 msgid "B<#include E<lt>sys/time.hE<gt>>"
6465 msgstr "B<#include E<lt>sys/time.hE<gt>>"
6468 #: build/C/man2/getpriority.2:53 build/C/man2/getrlimit.2:71
6469 #: build/C/man2/getrusage.2:46
6470 msgid "B<#include E<lt>sys/resource.hE<gt>>"
6471 msgstr "B<#include E<lt>sys/resource.hE<gt>>"
6474 #: build/C/man2/getpriority.2:55
6475 msgid "B<int getpriority(int >I<which>B<, int >I<who>B<);>"
6476 msgstr "B<int getpriority(int >I<which>B<, int >I<who>B<);>"
6479 #: build/C/man2/getpriority.2:57
6480 msgid "B<int setpriority(int >I<which>B<, int >I<who>B<, int >I<prio>B<);>"
6481 msgstr "B<int setpriority(int >I<which>B<, int >I<who>B<, int >I<prio>B<);>"
6484 #: build/C/man2/getpriority.2:68
6486 "The scheduling priority of the process, process group, or user, as indicated "
6487 "by I<which> and I<who> is obtained with the B<getpriority>() call and set "
6488 "with the B<setpriority>() call."
6490 "システムコール B<getpriority>() や B<setpriority>() は、 I<which> と "
6491 "I<who> で指定されたプロセス、プロセス・グループ、ユーザーの スケジューリング"
6492 "優先度 (scheduling priority) の 取得や設定をそれぞれ行う。"
6495 #: build/C/man2/getpriority.2:95
6497 "The value I<which> is one of B<PRIO_PROCESS>, B<PRIO_PGRP>, or B<PRIO_USER>, "
6498 "and I<who> is interpreted relative to I<which> (a process identifier for "
6499 "B<PRIO_PROCESS>, process group identifier for B<PRIO_PGRP>, and a user ID "
6500 "for B<PRIO_USER>). A zero value for I<who> denotes (respectively) the "
6501 "calling process, the process group of the calling process, or the real user "
6502 "ID of the calling process. I<Prio> is a value in the range -20 to 19 (but "
6503 "see the Notes below). The default priority is 0; lower priorities cause "
6504 "more favorable scheduling."
6506 "I<which> の値は B<PRIO_PROCESS>, B<PRIO_PGRP>, B<PRIO_USER>, のどれか一つ"
6507 "で、 I<who> は I<which> に応じて解釈される (B<PRIO_PROCESS> だとプロセス識別"
6508 "子、 B<PRIO_PGRP> だとプロセス・グループ識別子、 B<PRIO_USER> だと UID (ユー"
6509 "ザID) と解釈される)。 I<who> がゼロならば、(それぞれ)呼び出したプロセス、 呼"
6510 "び出したプロセスのプロセス・グループ、 呼び出したプロセスの実UID を意味す"
6511 "る。 I<prio> は -20 から 19 の範囲の値で (但し以下の注意の項を参照のこと)、 "
6512 "デフォルトの優先度は 0 である; 小さな数字ほど、有利なスケジューリングとなる。"
6515 #: build/C/man2/getpriority.2:105
6517 "The B<getpriority>() call returns the highest priority (lowest numerical "
6518 "value) enjoyed by any of the specified processes. The B<setpriority>() "
6519 "call sets the priorities of all of the specified processes to the specified "
6520 "value. Only the superuser may lower priorities."
6522 "B<getpriority>() コールは指定したプロセスの中の最も高い優先度 (数値的には最"
6523 "小の値) を返す。 B<setpriority>() コールは指定したプロセス全ての優先度を指定"
6524 "した値に設定する。 優先度を今より小さい値に設定できるのはスーパー・ユーザーだ"
6528 #: build/C/man2/getpriority.2:118
6530 "Since B<getpriority>() can legitimately return the value -1, it is "
6531 "necessary to clear the external variable I<errno> prior to the call, then "
6532 "check it afterward to determine if -1 is an error or a legitimate value. "
6533 "The B<setpriority>() call returns 0 if there is no error, or -1 if there is."
6535 "B<getpriority>() は成功した場合にも -1 の値を返す可能性があるので、 呼び出し"
6536 "の前に外部変数の I<errno> をクリアし、呼び出しの後に返り値の -1 が正当な値か "
6537 "エラーかを判別する必要がある。 B<setpriority>() コールはエラーがなければ 0 "
6538 "を返し、エラーがあれば -1 を返す。"
6541 #: build/C/man2/getpriority.2:127
6542 msgid "I<which> was not one of B<PRIO_PROCESS>, B<PRIO_PGRP>, or B<PRIO_USER>."
6544 "I<which> が B<PRIO_PROCESS>, B<PRIO_PGRP>, B<PRIO_USER> のいずれでもない。"
6547 #: build/C/man2/getpriority.2:134
6548 msgid "No process was located using the I<which> and I<who> values specified."
6549 msgstr "I<which> と I<who> で指定されたプロセスが存在しない。"
6552 #: build/C/man2/getpriority.2:138
6554 "In addition to the errors indicated above, B<setpriority>() may fail if:"
6555 msgstr "上記のものに加えて B<setpriority>() では以下のエラーがある:"
6558 #: build/C/man2/getpriority.2:150
6560 "The caller attempted to lower a process priority, but did not have the "
6561 "required privilege (on Linux: did not have the B<CAP_SYS_NICE> capability). "
6562 "Since Linux 2.6.12, this error only occurs if the caller attempts to set a "
6563 "process priority outside the range of the B<RLIMIT_NICE> soft resource limit "
6564 "of the target process; see B<getrlimit>(2) for details."
6566 "呼び出し元がプロセスの優先度を下げようとしたが、必要な特権を 持っていなかっ"
6567 "た (Linux の場合、 B<CAP_SYS_NICE> ケーパビリティがなかった)。 Linux 2.6.12 "
6568 "以降では、呼び出し元が、あるプロセスの優先度を、 変更対象のプロセスのリソー"
6569 "ス B<RLIMIT_NICE> のソフト・リミットの範囲外に設定しようとした場合にのみ、 こ"
6570 "のエラーが発生する。詳細は B<getrlimit>(2) を参照。"
6573 #: build/C/man2/getpriority.2:158
6575 "A process was located, but its effective user ID did not match either the "
6576 "effective or the real user ID of the caller, and was not privileged (on "
6577 "Linux: did not have the B<CAP_SYS_NICE> capability). But see NOTES below."
6579 "プロセスは見つかったが、そのプロセスの実効 (effective) UID が 呼び出し元の実"
6580 "効UID にも実 (real) UID にも一致せず、 呼び出し元が特権も持っていなかった "
6581 "(Linux の場合、 B<CAP_SYS_NICE> ケーパビリティがなかった)。 以下の「注意」も"
6585 #: build/C/man2/getpriority.2:161
6587 "SVr4, 4.4BSD (these function calls first appeared in 4.2BSD), POSIX.1-2001."
6588 msgstr "SVr4, 4.4BSD (これらの関数は 4.2BSD で最初に登場した), POSIX.1-2001."
6591 #: build/C/man2/getpriority.2:167
6593 "A child created by B<fork>(2) inherits its parent's nice value. The nice "
6594 "value is preserved across B<execve>(2)."
6596 "B<fork>(2) で作成された子プロセスは、 親プロセスの nice 値を継承する。 "
6597 "B<execve>(2) の前後で nice 値は保存される。"
6600 #: build/C/man2/getpriority.2:178
6602 "The degree to which their relative nice value affects the scheduling of "
6603 "processes varies across UNIX systems, and, on Linux, across kernel "
6604 "versions. Starting with kernel 2.6.23, Linux adopted an algorithm that "
6605 "causes relative differences in nice values to have a much stronger effect. "
6606 "This causes very low nice values (+19) to truly provide little CPU to a "
6607 "process whenever there is any other higher priority load on the system, and "
6608 "makes high nice values (-20) deliver most of the CPU to applications that "
6609 "require it (e.g., some audio applications)."
6611 "相対的な nice 値の違いがプロセス間のスケジューリングにどの程度影響を与えるか "
6612 "は、UNIX システム間で異なり、Linux ではカーネルバージョンにより異なる。 "
6613 "Linux は、カーネル 2.6.23 以降で、nice 値の相対的な違いが、非常に強い影響を "
6614 "与えるアルゴリズムを採用した。このアルゴリズムでは、 他に優先度の高いものがシ"
6615 "ステムに存在する時には、 非常に低い nice 値 (+19) ではプロセスに本当にほとん"
6616 "ど CPU が割り当てられない。 また、高い nice 値 (-20) では CPU を必要とするア"
6617 "プリケーション (例えば オーディオ・アプリケーション) に CPU のほとんどが割り"
6621 #: build/C/man2/getpriority.2:193
6623 "The details on the condition for B<EPERM> depend on the system. The above "
6624 "description is what POSIX.1-2001 says, and seems to be followed on all "
6625 "System V-like systems. Linux kernels before 2.6.12 required the real or "
6626 "effective user ID of the caller to match the real user of the process I<who> "
6627 "(instead of its effective user ID). Linux 2.6.12 and later require the "
6628 "effective user ID of the caller to match the real or effective user ID of "
6629 "the process I<who>. All BSD-like systems (SunOS 4.1.3, Ultrix 4.2, 4.3BSD, "
6630 "FreeBSD 4.3, OpenBSD-2.5, ...) behave in the same manner as Linux 2.6.12 and "
6633 "B<EPERM> が発生する条件の詳細はシステムに依存する。 上記の説明は "
6634 "POSIX.1-2001 のものであり、全ての System V 風システムは これに従っているよう"
6635 "である。 2.6.12 より前の Linux カーネルでは、呼び出し元の実 UID または 実効 "
6636 "UID がプロセス I<who> の (実効 UID でなく) 実 UID に一致する必要がある。 "
6637 "Linux 2.6.12 以降では、呼び出し元の実行 UID がプロセス I<who> の実 UID か実"
6638 "効 UID のいずれかと一致する必要がある。 全ての BSD 風システム (SunOS 4.1.3, "
6639 "Ultrix 4.2, 4.3BSD, FreeBSD 4.3, OpenBSD-2.5等) は、 Linux 2.6.12 以降と同じ"
6643 #: build/C/man2/getpriority.2:209
6645 "The actual priority range varies between kernel versions. Linux before "
6646 "1.3.36 had -infinity..15. Since kernel 1.3.43 Linux has the range -20..19. "
6647 "Within the kernel, nice values are actually represented using the "
6648 "corresponding range 40..1 (since negative numbers are error codes) and these "
6649 "are the values employed by the B<setpriority>() and B<getpriority>() "
6650 "system calls. The glibc wrapper functions for these system calls handle the "
6651 "translations between the user-land and kernel representations of the nice "
6652 "value according to the formula I<unice\\ =\\ 20\\ -\\ knice>."
6654 "実際の優先度の値の範囲はカーネルのバージョンによって異なる。 1.3.36 より前の "
6655 "Linux では、優先度の範囲は負の無限大 〜 15 である。 1.3.43 以降の Linux で"
6656 "は、優先度の範囲は -20 〜 19 である。 カーネル内部では、nice 値は実際には 40 "
6657 "〜 1 の範囲を使って 表現されており (負の値はエラーコードとなるため)、こちらの"
6658 "値が システムコール B<setpriority>() と B<getpriority>() で使用されてい"
6659 "る。 glibc のこれらのシステムコールのラッパー関数において、nice 値の ユーザ領"
6660 "域 (user-land) とカーネル表現の間の変換が行われる。 変換式は以下の通り: "
6661 "I<unice\\ =\\ 20\\ -\\ knice>"
6664 #: build/C/man2/getpriority.2:211
6665 msgid "On some systems, the range of nice values is -20..20."
6666 msgstr "いくつかのシステムでは、nice 値の範囲は \\20 〜 20 である。"
6669 #: build/C/man2/getpriority.2:223
6671 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
6672 "portability. (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
6673 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
6676 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
6677 "すれば移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> で "
6678 "I<rusage> 構造体が定義されているが、そのフィールドで使用されている I<struct "
6679 "timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
6682 #: build/C/man2/getpriority.2:228
6683 msgid "B<nice>(1), B<renice>(1), B<fork>(2), B<capabilities>(7)"
6684 msgstr "B<nice>(1), B<renice>(1), B<fork>(2), B<capabilities>(7)"
6687 #: build/C/man2/getpriority.2:231
6689 "I<Documentation/scheduler/sched-nice-design.txt> in the kernel source tree "
6690 "(since Linux 2.6.23)."
6692 "(Linux 2.6.23 以降の) カーネルのソースツリー内の I<Documentation/scheduler/"
6693 "sched-nice-design.txt>"
6696 #: build/C/man2/getresuid.2:27
6702 #: build/C/man2/getresuid.2:30
6703 msgid "getresuid, getresgid - get real, effective and saved user/group IDs"
6705 "getresuid, getresgid - 実、実効、保存、ユーザー ID / グループ ID を取得する"
6708 #: build/C/man2/getresuid.2:32 build/C/man2/setresuid.2:31
6709 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
6710 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
6713 #: build/C/man2/getresuid.2:36
6715 "B<int getresuid(uid_t *>I<ruid>B<, uid_t *>I<euid>B<, uid_t *>I<suid>B<);>"
6717 "B<int getresuid(uid_t *>I<ruid>B<, uid_t *>I<euid>B<, uid_t *>I<suid>B<);>"
6720 #: build/C/man2/getresuid.2:38
6722 "B<int getresgid(gid_t *>I<rgid>B<, gid_t *>I<egid>B<, gid_t *>I<sgid>B<);>"
6724 "B<int getresgid(gid_t *>I<rgid>B<, gid_t *>I<egid>B<, gid_t *>I<sgid>B<);>"
6727 #: build/C/man2/getresuid.2:49
6729 "B<getresuid>() returns the real UID, the effective UID, and the saved set-"
6730 "user-ID of the calling process, in the arguments I<ruid>, I<euid>, and "
6731 "I<suid>, respectively. B<getresgid>() performs the analogous task for the "
6732 "process's group IDs."
6734 "B<getresuid>() は、呼び出したプロセスの実 (real) UID、実効 (effective) "
6735 "UID、 保存 (saved) set-user-ID (B<getresgid> の場合はグループ ID) を、 それぞ"
6736 "れ引き数 I<ruid>, I<euid>, I<suid> に格納して返す。 B<getresgid>() は、呼び"
6737 "出したプロセスのグループ ID について同様の処理を行う。"
6740 #: build/C/man2/getresuid.2:59
6742 "One of the arguments specified an address outside the calling program's "
6745 "指定した引き数のどれかが、呼び出したプログラムのアドレス空間の外の アドレスで"
6749 #: build/C/man2/getresuid.2:61
6750 msgid "These system calls appeared on Linux starting with kernel 2.1.44."
6751 msgstr "これらのシステムコールはカーネル 2.1.44 から Linux に登場した。"
6754 #: build/C/man2/getresuid.2:66
6756 "The prototypes are given by glibc since version 2.3.2, provided "
6757 "B<_GNU_SOURCE> is defined."
6759 "プロトタイプ宣言は 2.3.2 以降の glibc では B<_GNU_SOURCE> を定義していると得"
6763 #: build/C/man2/getresuid.2:69 build/C/man2/setresuid.2:86
6765 "These calls are nonstandard; they also appear on HP-UX and some of the BSDs."
6766 msgstr "これらのコールは非標準である。 HP-UX や BSD 系のいくつかにも存在する。"
6769 #: build/C/man2/getresuid.2:85
6771 "The original Linux B<getresuid>() and B<getresgid>() system calls "
6772 "supported only 16-bit user and group IDs. Subsequently, Linux 2.4 added "
6773 "B<getresuid32>() and B<getresgid32>(), supporting 32-bit IDs. The glibc "
6774 "B<getresuid>() and B<getresgid>() wrapper functions transparently deal "
6775 "with the variations across kernel versions."
6779 #: build/C/man2/getresuid.2:91
6781 "B<getuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>"
6784 "B<getuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>"
6788 #: build/C/man2/getrlimit.2:64
6794 #: build/C/man2/getrlimit.2:64
6796 #| msgid "2010-09-20"
6801 #: build/C/man2/getrlimit.2:67
6803 #| msgid "getrlimit, setrlimit - get/set resource limits"
6804 msgid "getrlimit, setrlimit, prlimit - get/set resource limits"
6805 msgstr "getrlimit, setrlimit - 資源の制限を取得/設定する"
6808 #: build/C/man2/getrlimit.2:73
6809 msgid "B<int getrlimit(int >I<resource>B<, struct rlimit *>I<rlim>B<);>"
6810 msgstr "B<int getrlimit(int >I<resource>B<, struct rlimit *>I<rlim>B<);>"
6813 #: build/C/man2/getrlimit.2:75
6814 msgid "B<int setrlimit(int >I<resource>B<, const struct rlimit *>I<rlim>B<);>"
6815 msgstr "B<int setrlimit(int >I<resource>B<, const struct rlimit *>I<rlim>B<);>"
6818 #: build/C/man2/getrlimit.2:78
6821 #| "B<int setrlimit(int >I<resource>B<, const struct rlimit *>I<rlim>B<);>"
6823 "B<int prlimit(pid_t >I<pid>B<, int >I<resource>B<, const struct rlimit "
6824 "*>I<new_limit>B<,>"
6825 msgstr "B<int setrlimit(int >I<resource>B<, const struct rlimit *>I<rlim>B<);>"
6828 #: build/C/man2/getrlimit.2:80
6830 #| msgid "B<int getrlimit(int >I<resource>B<, struct rlimit *>I<rlim>B<);>"
6831 msgid "B< struct rlimit *>I<old_limit>B<);>"
6832 msgstr "B<int getrlimit(int >I<resource>B<, struct rlimit *>I<rlim>B<);>"
6835 #: build/C/man2/getrlimit.2:88
6836 msgid "B<prlimit>(): _GNU_SOURCE && _FILE_OFFSET_BITS == 64"
6840 #: build/C/man2/getrlimit.2:97
6843 #| "B<getrlimit>() and B<setrlimit>() get and set resource limits "
6844 #| "respectively. Each resource has an associated soft and hard limit, as "
6845 #| "defined by the I<rlimit> structure (the I<rlim> argument to both "
6846 #| "B<getrlimit>() and B<setrlimit>()):"
6848 "The B<getrlimit>() and B<setrlimit>() system calls get and set resource "
6849 "limits respectively. Each resource has an associated soft and hard limit, "
6850 "as defined by the I<rlimit> structure:"
6852 "B<getrlimit>() と B<setrlimit>() はそれぞれ資源 (resource) の制限 (limit) "
6853 "の設定と取得を行う。 各リソースには、それに対応するソフト・リミットとハード・"
6854 "リミットがある。 リミットは (B<getrlimit>() と B<setrlimit>() の I<rlim> 引"
6855 "き数である) I<rlimit> 構造体で定義される:"
6858 #: build/C/man2/getrlimit.2:104
6862 " rlim_t rlim_cur; /* Soft limit */\n"
6863 " rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */\n"
6867 " rlim_t rlim_cur; /* ソフト・リミット */\n"
6868 " rlim_t rlim_max; /* ハード・リミット\n"
6869 " (rlim_cur より小さくない) */\n"
6873 #: build/C/man2/getrlimit.2:115
6875 "The soft limit is the value that the kernel enforces for the corresponding "
6876 "resource. The hard limit acts as a ceiling for the soft limit: an "
6877 "unprivileged process may only set its soft limit to a value in the range "
6878 "from 0 up to the hard limit, and (irreversibly) lower its hard limit. A "
6879 "privileged process (under Linux: one with the B<CAP_SYS_RESOURCE> "
6880 "capability) may make arbitrary changes to either limit value."
6882 "ソフト・リミットは、カーネルが対応するリソースに対して課す制限値である。 ハー"
6883 "ド・リミットはソフト・リミットの上限として働く。 特権を持たないプロセスは、ソ"
6884 "フト・リミットの値を 0 からハード・リミットの範囲に設定することと、 ハード・"
6885 "リミットを下げることのみができる (一度下げたハードリミットは上げられない)。 "
6886 "特権プロセス (Linux では B<CAP_SYS_RESOURCE> ケーパビリティ (capability) を持"
6887 "つプロセス) は ソフト・リミットとハード・リミットを自由に変更できる。"
6890 #: build/C/man2/getrlimit.2:122
6892 "The value B<RLIM_INFINITY> denotes no limit on a resource (both in the "
6893 "structure returned by B<getrlimit>() and in the structure passed to "
6896 "値 B<RLIM_INFINITY> はリソースに制限がないことを表す (この値は B<getrlimit>"
6897 "() が返す構造体と B<setrlimit>() に渡す構造体の両方で使用される)。"
6900 #: build/C/man2/getrlimit.2:126
6902 #| msgid "I<resource> must be one of:"
6903 msgid "The I<resource> argument must be one of:"
6904 msgstr "I<resource> は次のいずれか 1 つである。"
6907 #: build/C/man2/getrlimit.2:126
6909 msgid "B<RLIMIT_AS>"
6910 msgstr "B<RLIMIT_AS>"
6912 #. since 2.0.27 / 2.1.12
6914 #: build/C/man2/getrlimit.2:146
6916 "The maximum size of the process's virtual memory (address space) in bytes. "
6917 "This limit affects calls to B<brk>(2), B<mmap>(2) and B<mremap>(2), which "
6918 "fail with the error B<ENOMEM> upon exceeding this limit. Also automatic "
6919 "stack expansion will fail (and generate a B<SIGSEGV> that kills the process "
6920 "if no alternate stack has been made available via B<sigaltstack>(2)). Since "
6921 "the value is a I<long>, on machines with a 32-bit I<long> either this limit "
6922 "is at most 2 GiB, or this resource is unlimited."
6924 "プロセスの仮想メモリ (アドレス空間) の最大サイズ (バイト単位)。 この制限は "
6925 "B<brk>(2), B<mmap>(2), B<mremap>(2) の呼び出しに影響し、この制限を超えた場合"
6926 "は エラー B<ENOMEM> で失敗する。 また自動的なスタック拡張にも失敗する (さら"
6927 "に B<sigaltstack>(2) を使った代替スタックを利用可能にしていなかった場合に"
6928 "は、 B<SIGSEGV> を生成してそのプロセスを kill する)。 この値は I<long> 型なの"
6929 "で、32 ビットの I<long> 型を持つマシンでは、 この制限は最大で 2 GiB になる"
6933 #: build/C/man2/getrlimit.2:146
6935 msgid "B<RLIMIT_CORE>"
6936 msgstr "B<RLIMIT_CORE>"
6939 #: build/C/man2/getrlimit.2:153
6941 "Maximum size of I<core> file. When 0 no core dump files are created. When "
6942 "nonzero, larger dumps are truncated to this size."
6944 "I<core> ファイルの最大サイズ。 0 の場合、core ファイルは生成されない。 0 以外"
6945 "の場合、このサイズより大きいダンプは切り詰められる。"
6948 #: build/C/man2/getrlimit.2:153
6950 msgid "B<RLIMIT_CPU>"
6951 msgstr "B<RLIMIT_CPU>"
6954 #: build/C/man2/getrlimit.2:173
6957 #| "CPU time limit in seconds. When the process reaches the soft limit, it "
6958 #| "is sent a B<SIGXCPU> signal. The default action for this signal is to "
6959 #| "terminate the process. However, the signal can be caught, and the "
6960 #| "handler can return control to the main program. If the process continues "
6961 #| "to consume CPU time, it will be sent B<SIGXCPU> once per second until the "
6962 #| "hard limit is reached, at which time it is sent B<SIGKILL>. (This latter "
6963 #| "point describes Linux 2.2 through 2.6 behavior. Implementations vary in "
6964 #| "how they treat processes which continue to consume CPU time after "
6965 #| "reaching the soft limit. Portable applications that need to catch this "
6966 #| "signal should perform an orderly termination upon first receipt of "
6969 "CPU time limit in seconds. When the process reaches the soft limit, it is "
6970 "sent a B<SIGXCPU> signal. The default action for this signal is to "
6971 "terminate the process. However, the signal can be caught, and the handler "
6972 "can return control to the main program. If the process continues to consume "
6973 "CPU time, it will be sent B<SIGXCPU> once per second until the hard limit is "
6974 "reached, at which time it is sent B<SIGKILL>. (This latter point describes "
6975 "Linux behavior. Implementations vary in how they treat processes which "
6976 "continue to consume CPU time after reaching the soft limit. Portable "
6977 "applications that need to catch this signal should perform an orderly "
6978 "termination upon first receipt of B<SIGXCPU>.)"
6980 "CPU 時間の上限 (秒数)。 プロセスがソフト・リミットに達した場合に、 "
6981 "B<SIGXCPU> シグナルを送る。 このシグナルに対するデフォルトの動作は、プロセス"
6982 "の終了である。 ただしシグナルをキャッチして、ハンドラがメインプログラムに 制"
6983 "御を返すこともできる。 プロセスが CPU 時間を使い続けた場合は、 ハードリミット"
6984 "に達するまで 1 秒毎にプロセスに B<SIGXCPU> を送り、 ハードリミットに達すると "
6985 "B<SIGKILL> を送る。 ソフト・リミットを超過したときの動作は、 Linux 2.2 から "
6986 "2.6 のものである。 ソフト・リミットを超えて CPU 時間を使い続けるプロセスの 扱"
6987 "い方についての実装は変化してきている。 このシグナルをキャッチする必要のある "
6988 "移植性を考えたアプリケーションでは、 最初に B<SIGXCPU> を受け取った時点で正し"
6992 #: build/C/man2/getrlimit.2:173
6994 msgid "B<RLIMIT_DATA>"
6995 msgstr "B<RLIMIT_DATA>"
6998 #: build/C/man2/getrlimit.2:184
7000 "The maximum size of the process's data segment (initialized data, "
7001 "uninitialized data, and heap). This limit affects calls to B<brk>(2) and "
7002 "B<sbrk>(2), which fail with the error B<ENOMEM> upon encountering the soft "
7003 "limit of this resource."
7005 "プロセスのデータセグメント (初期化されたデータ・初期化されていないデータ・"
7006 "ヒープ) の最大値。 このリミットは B<brk>(2) と B<sbrk>(2) の呼び出しに影響"
7007 "する。 これらの関数は、このリソースのソフト・リミットに達すると、 エラー "
7011 #: build/C/man2/getrlimit.2:184
7013 msgid "B<RLIMIT_FSIZE>"
7014 msgstr "B<RLIMIT_FSIZE>"
7017 #: build/C/man2/getrlimit.2:196
7019 "The maximum size of files that the process may create. Attempts to extend a "
7020 "file beyond this limit result in delivery of a B<SIGXFSZ> signal. By "
7021 "default, this signal terminates a process, but a process can catch this "
7022 "signal instead, in which case the relevant system call (e.g., B<write>(2), "
7023 "B<truncate>(2)) fails with the error B<EFBIG>."
7025 "プロセスが作成できるファイルサイズの最大値。 このサイズを超えてファイルを拡張"
7026 "すると、 B<SIGXFSZ> シグナルを送る。 デフォルトでは、このシグナルはプロセスを"
7027 "終了する。 プロセスをキャッチすることもできるが、 関連するシステムコール "
7028 "(B<write>(2), B<truncate>(2) など) はエラー B<EFBIG> で失敗する。"
7031 #: build/C/man2/getrlimit.2:196
7033 msgid "B<RLIMIT_LOCKS> (Early Linux 2.4 only)"
7034 msgstr "B<RLIMIT_LOCKS> (初期の Linux 2.4 のみ)"
7036 #. to be precise: Linux 2.4.0-test9; no longer in 2.4.25 / 2.5.65
7038 #: build/C/man2/getrlimit.2:204
7040 "A limit on the combined number of B<flock>(2) locks and B<fcntl>(2) leases "
7041 "that this process may establish."
7043 "このプロセスが実行できる B<flock>(2) ロック数と B<fcntl>(2) リース数の合計"
7047 #: build/C/man2/getrlimit.2:204
7049 msgid "B<RLIMIT_MEMLOCK>"
7050 msgstr "B<RLIMIT_MEMLOCK>"
7053 #: build/C/man2/getrlimit.2:242
7055 "The maximum number of bytes of memory that may be locked into RAM. In "
7056 "effect this limit is rounded down to the nearest multiple of the system page "
7057 "size. This limit affects B<mlock>(2) and B<mlockall>(2) and the B<mmap>"
7058 "(2) B<MAP_LOCKED> operation. Since Linux 2.6.9 it also affects the "
7059 "B<shmctl>(2) B<SHM_LOCK> operation, where it sets a maximum on the total "
7060 "bytes in shared memory segments (see B<shmget>(2)) that may be locked by "
7061 "the real user ID of the calling process. The B<shmctl>(2) B<SHM_LOCK> "
7062 "locks are accounted for separately from the per-process memory locks "
7063 "established by B<mlock>(2), B<mlockall>(2), and B<mmap>(2) B<MAP_LOCKED>; a "
7064 "process can lock bytes up to this limit in each of these two categories. In "
7065 "Linux kernels before 2.6.9, this limit controlled the amount of memory that "
7066 "could be locked by a privileged process. Since Linux 2.6.9, no limits are "
7067 "placed on the amount of memory that a privileged process may lock, and this "
7068 "limit instead governs the amount of memory that an unprivileged process may "
7071 "RAM 内にロックできるメモリの最大バイト数。 実際には、この制限はシステムページ"
7072 "サイズの最も近い倍数に 切り捨てて丸められる。 この制限は B<mlock>(2), "
7073 "B<mlockall>(2), B<mmap>(2) の B<MAP_LOCKED> 操作に影響する。 Linux 2.6.9 以"
7074 "降では B<shmctl>(2) B<SHM_LOCK> 操作にも影響する。 この操作は呼び出し元プロ"
7075 "セスの実 (real) ユーザー ID にロックされる 共有メモリセグメント (B<shmget>"
7076 "(2) を参照) の合計バイト数の最大値を設定する。 B<shmctl>(2) B<SHM_LOCK> に"
7077 "よるロックは、 B<mlock>(2), B<mlockall>(2), B<mmap>(2) の B<MAP_LOCKED> に"
7078 "よって確立されるプロセス毎のメモリロックとは分けて数える。 1 つのプロセスはこ"
7079 "の制限までのバイトをロックできる。 この制限には 2 つの種類がある。 2.6.9 より"
7080 "前の Linux カーネル では、 この制限は特権プロセスによってロックされるメモリの"
7081 "合計を制御していた。 Linux 2.6.9 以降では、特権プロセスがロックするメモリの合"
7082 "計に制限はなく、 代わりにこの制限は非特権プロセスがロックするメモリの合計に "
7086 #: build/C/man2/getrlimit.2:242
7088 msgid "B<RLIMIT_MSGQUEUE> (Since Linux 2.6.8)"
7089 msgstr "B<RLIMIT_MSGQUEUE> (Linux 2.6.8 以降)"
7092 #: build/C/man2/getrlimit.2:250
7094 "Specifies the limit on the number of bytes that can be allocated for POSIX "
7095 "message queues for the real user ID of the calling process. This limit is "
7096 "enforced for B<mq_open>(3). Each message queue that the user creates counts "
7097 "(until it is removed) against this limit according to the formula:"
7099 "呼び出し元プロセスの実ユーザー ID に対して、 POSIX メッセージキューのために確"
7100 "保できるバイト数の制限を指定する。 この制限は B<mq_open>(3) に対して適用され"
7101 "る。 ユーザが作成した各々のメッセージキューのバイト数は 以下の式により計算さ"
7102 "れ、(そのキューが削除されるまでの間) この制限の計算対象に含められる。"
7105 #: build/C/man2/getrlimit.2:254
7108 " bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) +\n"
7109 " attr.mq_maxmsg * attr.mq_msgsize\n"
7111 " bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) +\n"
7112 " attr.mq_maxmsg * attr.mq_msgsize\n"
7115 #: build/C/man2/getrlimit.2:262
7117 "where I<attr> is the I<mq_attr> structure specified as the fourth argument "
7120 "ここで I<attr> は I<mq_attr> 構造体であり、 B<mq_open>(3) の第 4 引き数とし"
7124 #: build/C/man2/getrlimit.2:268
7126 "The first addend in the formula, which includes I<sizeof(struct msg_msg *)> "
7127 "(4 bytes on Linux/i386), ensures that the user cannot create an unlimited "
7128 "number of zero-length messages (such messages nevertheless each consume some "
7129 "system memory for bookkeeping overhead)."
7131 "I<sizeof(struct msg_msg *)> (Linux/i386 では 4 バイト) を含む最初の加数は、 "
7132 "ユーザーが長さ 0 のメッセージを無制限に作れないこと保証している (このような"
7133 "メッセージであっても、 記録のためのオーバーヘッドでシステムメモリを消費す"
7137 #: build/C/man2/getrlimit.2:268
7139 msgid "B<RLIMIT_NICE> (since Linux 2.6.12, but see BUGS below)"
7140 msgstr "B<RLIMIT_NICE> (Linux 2.6.12 以降, 下記の「バグ」の節も参照)"
7143 #: build/C/man2/getrlimit.2:281
7145 "Specifies a ceiling to which the process's nice value can be raised using "
7146 "B<setpriority>(2) or B<nice>(2). The actual ceiling for the nice value is "
7147 "calculated as I<20\\ -\\ rlim_cur>. (This strangeness occurs because "
7148 "negative numbers cannot be specified as resource limit values, since they "
7149 "typically have special meanings. For example, B<RLIM_INFINITY> typically is "
7152 "B<setpriority>(2) や B<nice>(2) を使って引き上げられるプロセスの nice 値の"
7153 "上限を指定する。 nice 値の実際の上限は I<20\\ -\\ rlim_cur> で計算される (こ"
7154 "のような変な状況は、リソース制限値として負の数を指定できないため 発生する。通"
7155 "常、負の値は特別な意味を持っているからである。 例えば、通常は "
7156 "B<RLIM_INFINITY> の値は -1 である)。"
7159 #: build/C/man2/getrlimit.2:281
7161 msgid "B<RLIMIT_NOFILE>"
7162 msgstr "B<RLIMIT_NOFILE>"
7165 #: build/C/man2/getrlimit.2:295
7167 "Specifies a value one greater than the maximum file descriptor number that "
7168 "can be opened by this process. Attempts (B<open>(2), B<pipe>(2), B<dup>(2), "
7169 "etc.) to exceed this limit yield the error B<EMFILE>. (Historically, this "
7170 "limit was named B<RLIMIT_OFILE> on BSD.)"
7172 "このプロセスがオープンできるファイルディスクリプタ数の最大値より 1 大きい値を"
7173 "指定する。 (B<open>(2), B<pipe>(2), B<dup>(2) などにより) この上限を超えよう"
7174 "とした場合、エラー B<EMFILE> が発生する (歴史的に、BSD ではこの上限は "
7175 "B<RLIMIT_OFILE> という名前となっている)。"
7178 #: build/C/man2/getrlimit.2:295
7180 msgid "B<RLIMIT_NPROC>"
7181 msgstr "B<RLIMIT_NPROC>"
7184 #: build/C/man2/getrlimit.2:303
7186 "The maximum number of processes (or, more precisely on Linux, threads) that "
7187 "can be created for the real user ID of the calling process. Upon "
7188 "encountering this limit, B<fork>(2) fails with the error B<EAGAIN>."
7190 "呼び出したプロセスの実ユーザー ID で作成できる最大プロセス数 (より正確には "
7191 "Linux ではスレッド数)。 この上限に達すると、 B<fork>(2) はエラー B<EAGAIN> "
7195 #: build/C/man2/getrlimit.2:303
7197 msgid "B<RLIMIT_RSS>"
7198 msgstr "B<RLIMIT_RSS>"
7200 #. As at kernel 2.6.12, this limit still does nothing in 2.6 though
7201 #. talk of making it do something has surfaced from time to time in LKML
7204 #: build/C/man2/getrlimit.2:315
7206 "Specifies the limit (in pages) of the process's resident set (the number of "
7207 "virtual pages resident in RAM). This limit only has effect in Linux 2.4.x, "
7208 "x E<lt> 30, and there only affects calls to B<madvise>(2) specifying "
7211 "プロセスの resident set (RAM 上に存在する仮想ページの数) の 上限を (ページ数"
7212 "で) 指定する。 この制限は 2.4.30 より前でしか影響がなく、 B<madvise>(2) に "
7213 "B<MADV_WILLNEED> を指定した関数コールにしか影響しない。"
7216 #: build/C/man2/getrlimit.2:315
7218 msgid "B<RLIMIT_RTPRIO> (Since Linux 2.6.12, but see BUGS)"
7219 msgstr "B<RLIMIT_RTPRIO> (Linux 2.6.12 以降, バグの節も参照)"
7222 #: build/C/man2/getrlimit.2:322
7224 "Specifies a ceiling on the real-time priority that may be set for this "
7225 "process using B<sched_setscheduler>(2) and B<sched_setparam>(2)."
7227 "B<sched_setscheduler>(2) や B<sched_setparam>(2) を使って設定できる、そのプ"
7228 "ロセスのリアルタイム優先度の上限を指定する。"
7231 #: build/C/man2/getrlimit.2:322
7233 msgid "B<RLIMIT_RTTIME> (Since Linux 2.6.25)"
7234 msgstr "B<RLIMIT_RTTIME> (Linux 2.6.25 以降)"
7237 #: build/C/man2/getrlimit.2:334
7239 "Specifies a limit (in microseconds) on the amount of CPU time that a "
7240 "process scheduled under a real-time scheduling policy may consume without "
7241 "making a blocking system call. For the purpose of this limit, each time a "
7242 "process makes a blocking system call, the count of its consumed CPU time is "
7243 "reset to zero. The CPU time count is not reset if the process continues "
7244 "trying to use the CPU but is preempted, its time slice expires, or it calls "
7245 "B<sched_yield>(2)."
7247 "リアルタイム・スケジューリング方針でスケジューリングされるプロセスが ブロッキ"
7248 "ング型のシステムコールを呼び出さずに消費することのできる CPU 時間の合計につい"
7249 "ての上限を (マイクロ秒単位で) 指定する。 この上限の目的のため、プロセスがブ"
7250 "ロッキング型のシステムコールを 呼び出す度に、消費された CPU 時間のカウントは "
7251 "0 にリセットされる。 プロセスが CPU を使い続けようとしたが他のプロセスに置き"
7252 "換えられた (preempted) 場合や、そのプロセスのタイムスライスが満了した場合、 "
7253 "そのプロセスが B<sched_yield>(2) を呼び出した場合は、CPU 時間のカウントはリ"
7257 #: build/C/man2/getrlimit.2:345
7259 "Upon reaching the soft limit, the process is sent a B<SIGXCPU> signal. If "
7260 "the process catches or ignores this signal and continues consuming CPU time, "
7261 "then B<SIGXCPU> will be generated once each second until the hard limit is "
7262 "reached, at which point the process is sent a B<SIGKILL> signal."
7264 "ソフト・リミットに達すると、そのプロセスに B<SIGXCPU> シグナルが送られる。そ"
7265 "のプロセスがこのシグナルを捕捉するか 無視して、CPU 時間を消費し続けた場合に"
7266 "は、 ハード・リミットに達するまで 1 秒に 1 回 B<SIGXCPU> が生成され続けること"
7267 "になる。 ハード・リミットに達した時点で、そのプロセスには B<SIGKILL> シグナル"
7271 #: build/C/man2/getrlimit.2:348
7273 "The intended use of this limit is to stop a runaway real-time process from "
7274 "locking up the system."
7276 "この上限を意図的に使用するのは、暴走したリアルタイム・プロセスを 停止して、シ"
7277 "ステムが動かなくなるのを避ける場合である。"
7280 #: build/C/man2/getrlimit.2:348
7282 msgid "B<RLIMIT_SIGPENDING> (Since Linux 2.6.8)"
7283 msgstr "B<RLIMIT_SIGPENDING> (Linux 2.6.8 以降)"
7285 #. This replaces the /proc/sys/kernel/rtsig-max system-wide limit
7286 #. that was present in kernels <= 2.6.7. MTK Dec 04
7288 #: build/C/man2/getrlimit.2:362
7291 #| "Specifies the limit on the number of signals that may be queued for the "
7292 #| "real user ID of the calling process. Both standard and real-time signals "
7293 #| "are counted for the purpose of checking this limit. However, the limit "
7294 #| "is only enforced for B<sigqueue>(2); it is always possible to use B<kill>"
7295 #| "(2) to queue one instance of any of the signals that are not already "
7296 #| "queued to the process."
7298 "Specifies the limit on the number of signals that may be queued for the real "
7299 "user ID of the calling process. Both standard and real-time signals are "
7300 "counted for the purpose of checking this limit. However, the limit is only "
7301 "enforced for B<sigqueue>(3); it is always possible to use B<kill>(2) to "
7302 "queue one instance of any of the signals that are not already queued to the "
7305 "呼び出し元プロセスの実ユーザー ID に対して キューに入れられるシグナルの数の制"
7306 "限を指定する。 この制限をチェックするため、 標準シグナルとリアルタイム・シグ"
7307 "ナルの両方がカウントされる。 しかし、この制限は B<sigqueue>(2) に対してしか"
7308 "強制されず、 B<kill>(2) 使うことで、そのプロセスに対してまだキューに入れられ"
7309 "ていない シグナルのインスタンスをキューに入れることができる。"
7312 #: build/C/man2/getrlimit.2:362
7314 msgid "B<RLIMIT_STACK>"
7315 msgstr "B<RLIMIT_STACK>"
7318 #: build/C/man2/getrlimit.2:370
7320 "The maximum size of the process stack, in bytes. Upon reaching this limit, "
7321 "a B<SIGSEGV> signal is generated. To handle this signal, a process must "
7322 "employ an alternate signal stack (B<sigaltstack>(2))."
7324 "プロセス・スタックの最大サイズをバイト単位で指定する。 この上限に達すると、 "
7325 "B<SIGSEGV> シグナルが生成される。 このシグナルを扱うためには、 プロセスは代り"
7326 "のシグナルスタック (B<sigaltstack>(2)) を使用しなければならない。"
7329 #: build/C/man2/getrlimit.2:375
7331 "Since Linux 2.6.23, this limit also determines the amount of space used for "
7332 "the process's command-line arguments and environment variables; for details, "
7335 "Linux 2.6.23 以降では、この制限はプロセスのコマンドライン引き数と環境変数 に"
7336 "使用される空間の合計サイズの上限の決定にも使用される。詳細については "
7340 #: build/C/man2/getrlimit.2:375
7345 #. commit c022a0acad534fd5f5d5f17280f6d4d135e74e81
7346 #. Author: Jiri Slaby <jslaby@suse.cz>
7347 #. Date: Tue May 4 18:03:50 2010 +0200
7349 #: build/C/man2/getrlimit.2:386
7351 "The Linux-specific B<prlimit>() system call combines and extends the "
7352 "functionality of B<setrlimit>() and B<getrlimit>(). It can be used to both "
7353 "set and get the resource limits of an arbitrary process."
7357 #: build/C/man2/getrlimit.2:393
7359 "The I<resource> argument has the same meaning as for B<setrlimit>() and "
7364 #: build/C/man2/getrlimit.2:411
7366 "If the I<new_limit> argument is a not NULL, then the I<rlimit> structure to "
7367 "which it points is used to set new values for the soft and hard limits for "
7368 "I<resource>. If the I<old_limit> argument is a not NULL, then a successful "
7369 "call to B<prlimit>() places the previous soft and hard limits for "
7370 "I<resource> in the I<rlimit> structure pointed to by I<old_limit>."
7373 #. FIXME this permission check is strange
7374 #. Asked about this on LKML, 7 Nov 2010
7375 #. "Inconsistent credential checking in prlimit() syscall"
7377 #: build/C/man2/getrlimit.2:430
7379 "The I<pid> argument specifies the ID of the process on which the call is to "
7380 "operate. If I<pid> is 0, then the call applies to the calling process. To "
7381 "set or get the resources of a process other than itself, the caller must "
7382 "have the B<CAP_SYS_RESOURCE> capability, or the real, effective, and saved "
7383 "set user IDs of the target process must match the real user ID of the caller "
7384 "I<and> the real, effective, and saved set group IDs of the target process "
7385 "must match the real group ID of the caller."
7389 #: build/C/man2/getrlimit.2:435
7392 #| "On success, zero is returned. On error, -1 is returned, and I<errno> is "
7393 #| "set appropriately."
7395 "On success, these system calls return 0. On error, -1 is returned, and "
7396 "I<errno> is set appropriately."
7398 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
7402 #: build/C/man2/getrlimit.2:440
7404 #| msgid "I<usage> points outside the accessible address space."
7406 "A pointer argument points to a location outside the accessible address space."
7407 msgstr "I<usage> がアクセス可能なアドレス空間の外を指している。"
7410 #: build/C/man2/getrlimit.2:452
7413 #| "I<resource> is not valid; or, for B<setrlimit>(): I<rlim-E<gt>rlim_cur> "
7414 #| "was greater than I<rlim-E<gt>rlim_max>."
7416 "The value specified in I<resource> is not valid; or, for B<setrlimit>() or "
7417 "B<prlimit>(): I<rlim-E<gt>rlim_cur> was greater than I<rlim-E<gt>rlim_max>."
7419 "I<resource> が有効でない。 または、 B<setrlimit>() で、 I<rlim-"
7420 "E<gt>rlim_cur> が I<rlim-E<gt>rlim_max> よりも大きかった。"
7423 #: build/C/man2/getrlimit.2:464
7426 #| "An unprivileged process tried to use B<setrlimit>() to increase a soft "
7427 #| "or hard limit above the current hard limit; the B<CAP_SYS_RESOURCE> "
7428 #| "capability is required to do this. Or, the process tried to use "
7429 #| "B<setrlimit>() to increase the soft or hard B<RLIMIT_NOFILE> limit above "
7430 #| "the current kernel maximum (B<NR_OPEN>)."
7432 "An unprivileged process tried to raise the hard limit; the "
7433 "B<CAP_SYS_RESOURCE> capability is required to do this. Or, the caller tried "
7434 "to increase the hard B<RLIMIT_NOFILE> limit above the current kernel maximum "
7435 "(B<NR_OPEN>). Or, the calling process did not have permission to set limits "
7436 "for the process specified by I<pid>."
7438 "特権のないプロセスが B<setrlimit>() を使用して ソフト・リミットまたはハー"
7439 "ド・リミットを 現在のハード・リミットより大きくしようと試みた。 これを行うた"
7440 "めには B<CAP_SYS_RESOURCE> ケーパビリティが必要である。 または特権のないプロ"
7441 "セスが B<setrlimit>() を使用して ソフトまたはハード B<RLIMIT_NOFILE> リミッ"
7442 "トを現在のカーネルの最大値 (B<NR_OPEN>) 以上に増加させようとした。"
7445 #: build/C/man2/getrlimit.2:468
7446 msgid "Could not find a process with the ID specified in I<pid>."
7450 #: build/C/man2/getrlimit.2:473
7452 "The B<prlimit>() system call is available since Linux 2.6.36. Library "
7453 "support is available since glibc 2.13."
7457 #: build/C/man2/getrlimit.2:477
7458 msgid "B<getrlimit>(), B<setrlimit>(): SVr4, 4.3BSD, POSIX.1-2001."
7462 #: build/C/man2/getrlimit.2:480
7463 msgid "B<prlimit>(): Linux-specific."
7467 #: build/C/man2/getrlimit.2:496
7470 #| "SVr4, 4.3BSD, POSIX.1-2001. B<RLIMIT_MEMLOCK> and B<RLIMIT_NPROC> derive "
7471 #| "from BSD and are not specified in POSIX.1-2001; they are present on the "
7472 #| "BSDs and Linux, but on few other implementations. B<RLIMIT_RSS> derives "
7473 #| "from BSD and is not specified in POSIX.1-2001; it is nevertheless present "
7474 #| "on most implementations. B<RLIMIT_MSGQUEUE>, B<RLIMIT_NICE>, "
7475 #| "B<RLIMIT_RTPRIO>, B<RLIMIT_RTTIME>, and B<RLIMIT_SIGPENDING> are Linux-"
7478 "B<RLIMIT_MEMLOCK> and B<RLIMIT_NPROC> derive from BSD and are not specified "
7479 "in POSIX.1-2001; they are present on the BSDs and Linux, but on few other "
7480 "implementations. B<RLIMIT_RSS> derives from BSD and is not specified in "
7481 "POSIX.1-2001; it is nevertheless present on most implementations. "
7482 "B<RLIMIT_MSGQUEUE>, B<RLIMIT_NICE>, B<RLIMIT_RTPRIO>, B<RLIMIT_RTTIME>, and "
7483 "B<RLIMIT_SIGPENDING> are Linux-specific."
7485 "SVr4, 4.3BSD, POSIX.1-2001. B<RLIMIT_MEMLOCK> と B<RLIMIT_NPROC> は BSD から"
7486 "派生し、POSIX.1-2001 には指定されていない。 これらは BSD 系と Linux に存在す"
7487 "るが、他の実装は少ない。 B<RLIMIT_RSS> は BSD から派生し、POSIX.1-2001 には指"
7488 "定されていない。 それにも関わらず多くの実装で存在する。 B<RLIMIT_MSGQUEUE>, "
7489 "B<RLIMIT_NICE>, B<RLIMIT_RTPRIO>, B<RLIMIT_RTTIME>, B<RLIMIT_SIGPENDING> は "
7493 #: build/C/man2/getrlimit.2:502
7495 "A child process created via B<fork>(2) inherits its parent's resource "
7496 "limits. Resource limits are preserved across B<execve>(2)."
7498 "B<fork>(2) で作成された作成された子プロセスは、 親プロセスのリソース制限を継"
7499 "承する。 B<execve>(2) の前後でリソース制限は保存される。"
7502 #: build/C/man2/getrlimit.2:511
7504 "One can set the resource limits of the shell using the built-in I<ulimit> "
7505 "command (I<limit> in B<csh>(1)). The shell's resource limits are inherited "
7506 "by the processes that it creates to execute commands."
7508 "シェルのリソース制限は、シェルの組み込みコマンドである I<ulimit> (B<csh>(1) "
7509 "では I<limit )> を使って設定することができる。 このシェルのリソース制限は、コ"
7510 "マンドを実行してシェルが生成するプロセス に引き継がれる。"
7513 #: build/C/man2/getrlimit.2:520
7515 "Ancient systems provided a B<vlimit>() function with a similar purpose to "
7516 "B<setrlimit>(). For backward compatibility, glibc also provides B<vlimit>"
7517 "(). All new applications should be written using B<setrlimit>()."
7519 "古いシステムでは、 B<setrlimit>() と同様の目的を持つ関数 B<vlimit>() が提供"
7520 "されていた。 後方互換性のため、glibc でも B<vlimit>() を提供している。 全て"
7521 "の新しいアプリケーションでは、 B<setrlimit>() を使用すべきである。"
7524 #: build/C/man2/getrlimit.2:523
7525 msgid "The program below demonstrates the use of B<prlimit>()."
7529 #: build/C/man2/getrlimit.2:532
7532 #| "B<#include E<lt>sys/types.hE<gt>>\n"
7533 #| "B<#include E<lt>sys/ipc.hE<gt>>\n"
7534 #| "B<#include E<lt>sys/msg.hE<gt>>\n"
7535 #| "B<#include E<lt>sys/sem.hE<gt>>\n"
7536 #| "B<#include E<lt>sys/shm.hE<gt>>\n"
7538 "#define _GNU_SOURCE\n"
7539 "#define _FILE_OFFSET_BITS 64\n"
7540 "#include E<lt>stdio.hE<gt>\n"
7541 "#include E<lt>time.hE<gt>\n"
7542 "#include E<lt>stdlib.hE<gt>\n"
7543 "#include E<lt>unistd.hE<gt>\n"
7544 "#include E<lt>sys/resource.hE<gt>\n"
7546 "B<#include E<lt>sys/types.hE<gt>>\n"
7547 "B<#include E<lt>sys/ipc.hE<gt>>\n"
7548 "B<#include E<lt>sys/msg.hE<gt>>\n"
7549 "B<#include E<lt>sys/sem.hE<gt>>\n"
7550 "B<#include E<lt>sys/shm.hE<gt>>\n"
7553 #: build/C/man2/getrlimit.2:535
7556 "#define errExit(msg) \tdo { perror(msg); exit(EXIT_FAILURE); \\e\n"
7561 #: build/C/man2/getrlimit.2:542
7565 "main(int argc, char *argv[])\n"
7567 " struct rlimit old, new;\n"
7568 " struct rlimit *newp;\n"
7573 #: build/C/man2/getrlimit.2:548
7576 " if (!(argc == 2 || argc == 4)) {\n"
7577 " fprintf(stderr, \"Usage: %s E<lt>pidE<gt> [E<lt>new-soft-limitE<gt> \"\n"
7578 " \"E<lt>new-hard-limitE<gt>]\\en\", argv[0]);\n"
7579 " exit(EXIT_FAILURE);\n"
7584 #: build/C/man2/getrlimit.2:550
7586 msgid " pid = atoi(argv[1]); /* PID of target process */\n"
7590 #: build/C/man2/getrlimit.2:557
7594 " if (argc == 4) {\n"
7595 " new.rlim_cur = atoi(argv[2]);\n"
7596 " new.rlim_max = atoi(argv[3]);\n"
7602 #: build/C/man2/getrlimit.2:560
7605 " /* Set CPU time limit of target process; retrieve and display\n"
7606 " previous limit */\n"
7610 #: build/C/man2/getrlimit.2:565
7613 " if (prlimit(pid, RLIMIT_CPU, newp, &old) == -1)\n"
7614 " errExit(\"prlimit-1\");\n"
7615 " printf(\"Previous limits: soft=%lld; hard=%lld\\en\",\n"
7616 " (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7620 #: build/C/man2/getrlimit.2:567
7622 msgid " /* Retrieve and display new CPU time limit */\n"
7626 #: build/C/man2/getrlimit.2:572
7629 " if (prlimit(pid, RLIMIT_CPU, NULL, &old) == -1)\n"
7630 " errExit(\"prlimit-2\");\n"
7631 " printf(\"New limits: soft=%lld; hard=%lld\\en\",\n"
7632 " (long long) old.rlim_cur, (long long) old.rlim_max);\n"
7636 #: build/C/man2/getrlimit.2:575
7639 " exit(EXIT_FAILURE);\n"
7643 #. FIXME prlimit() does not suffer
7644 #. https://bugzilla.kernel.org/show_bug.cgi?id=5042
7645 #. http://sources.redhat.com/bugzilla/show_bug.cgi?id=12201
7647 #: build/C/man2/getrlimit.2:588
7649 "In older Linux kernels, the B<SIGXCPU> and B<SIGKILL> signals delivered when "
7650 "a process encountered the soft and hard B<RLIMIT_CPU> limits were delivered "
7651 "one (CPU) second later than they should have been. This was fixed in kernel "
7654 "以前の Linux カーネルでは、プロセスがソフトまたはハード B<RLIMIT_CPU> リミッ"
7655 "トに達した場合に送られる B<SIGXCPU> と B<SIGKILL> シグナルが、本来送られるべ"
7656 "き時点の 1 (CPU) 秒後に送られてしまう。 これはカーネル 2.6.8 で修正された。"
7658 #. see http://marc.theaimsgroup.com/?l=linux-kernel&m=114008066530167&w=2
7660 #: build/C/man2/getrlimit.2:596
7662 "In 2.6.x kernels before 2.6.17, a B<RLIMIT_CPU> limit of 0 is wrongly "
7663 "treated as \"no limit\" (like B<RLIM_INFINITY>). Since Linux 2.6.17, "
7664 "setting a limit of 0 does have an effect, but is actually treated as a limit "
7667 "2.6.17 より前の 2.6.x カーネルでは、 B<RLIMIT_CPU> リミットが 0 の場合、 "
7668 "(B<RLIM_INFINITY> と同じように) 「制限なし」と間違って解釈されていた。 Linux "
7669 "2.6.17 以降では、リミットを 0 に設定した場合にも 効果を持つようになっている"
7670 "が、実際にはリミットの値は 1 秒となる。"
7673 #: build/C/man2/getrlimit.2:600
7675 "A kernel bug means that B<RLIMIT_RTPRIO> does not work in kernel 2.6.12; the "
7676 "problem is fixed in kernel 2.6.13."
7678 "カーネル 2.6.12 には、 B<RLIMIT_RTPRIO> が動作しないというバグがある。この問"
7679 "題はカーネル 2.6.13 で修正されている。"
7681 #. see http://marc.theaimsgroup.com/?l=linux-kernel&m=112256338703880&w=2
7683 #: build/C/man2/getrlimit.2:611
7686 #| "In kernel 2.6.12, there was an off-by-one mismatch between the priority "
7687 #| "ranges returned by B<getpriority>(2) and B<RLIMIT_NICE>. This had the "
7688 #| "effect that actual ceiling for the nice value was calculated as I<19\\ -"
7689 #| "\\ rlim_cur>. This was fixed in kernel 2.6.13."
7691 "In kernel 2.6.12, there was an off-by-one mismatch between the priority "
7692 "ranges returned by B<getpriority>(2) and B<RLIMIT_NICE>. This had the "
7693 "effect that the actual ceiling for the nice value was calculated as I<19\\ -"
7694 "\\ rlim_cur>. This was fixed in kernel 2.6.13."
7696 "カーネル 2.6.12 では、 B<getpriority>(2) と B<RLIMIT_NICE> が返す優先度の範"
7697 "囲が一つずれていた。このため、nice 値の実際の上限が I<19\\ -\\ rlim_cur> に"
7698 "なってしまうという影響があった。これはカーネル 2.6.13 で修正された。"
7701 #: build/C/man2/getrlimit.2:620
7703 "Kernels before 2.4.22 did not diagnose the error B<EINVAL> for B<setrlimit>"
7704 "() when I<rlim-E<gt>rlim_cur> was greater than I<rlim-E<gt>rlim_max>."
7706 "2.4.22 より前のカーネルでは、 I<rlim-E<gt>rlim_cur> が I<rlim-E<gt>rlim_max> "
7707 "より大きかった場合、 B<setrlimit>() での B<EINVAL> エラーを検出できない。"
7710 #: build/C/man2/getrlimit.2:637
7713 #| "B<dup>(2), B<fcntl>(2), B<fork>(2), B<getrusage>(2), B<mlock>(2), B<mmap>"
7714 #| "(2), B<open>(2), B<quotactl>(2), B<sbrk>(2), B<shmctl>(2), B<sigqueue>"
7715 #| "(2), B<malloc>(3), B<ulimit>(3), B<core>(5), B<capabilities>(7), B<signal>"
7718 "B<dup>(2), B<fcntl>(2), B<fork>(2), B<getrusage>(2), B<mlock>(2), B<mmap>"
7719 "(2), B<open>(2), B<quotactl>(2), B<sbrk>(2), B<shmctl>(2), B<malloc>(3), "
7720 "B<sigqueue>(3), B<ulimit>(3), B<core>(5), B<capabilities>(7), B<signal>(7)"
7722 "B<dup>(2), B<fcntl>(2), B<fork>(2), B<getrusage>(2), B<mlock>(2), B<mmap>"
7723 "(2), B<open>(2), B<quotactl>(2), B<sbrk>(2), B<shmctl>(2), B<sigqueue>(2), "
7724 "B<malloc>(3), B<ulimit>(3), B<core>(5), B<capabilities>(7), B<signal>(7)"
7727 #: build/C/man2/getrusage.2:39
7733 #: build/C/man2/getrusage.2:39 build/C/man2/getsid.2:25
7734 #: build/C/man2/setpgid.2:46
7740 #: build/C/man2/getrusage.2:42
7741 msgid "getrusage - get resource usage"
7742 msgstr "getrusage - 資源の使用量を取得する"
7745 #: build/C/man2/getrusage.2:48
7746 msgid "B<int getrusage(int >I<who>B<, struct rusage *>I<usage>B<);>"
7747 msgstr "B<int getrusage(int >I<who>B<, struct rusage *>I<usage>B<);>"
7750 #: build/C/man2/getrusage.2:54
7752 "B<getrusage>() returns resource usage measures for I<who>, which can be one "
7755 "B<getrusage>() は I<who> の資源 (resource) の使用量を返す。 I<who> には以下"
7759 #: build/C/man2/getrusage.2:54
7761 msgid "B<RUSAGE_SELF>"
7762 msgstr "B<RUSAGE_SELF>"
7765 #: build/C/man2/getrusage.2:58
7767 "Return resource usage statistics for the calling process, which is the sum "
7768 "of resources used by all threads in the process."
7770 "呼び出したプロセスの資源使用量、 そのプロセス内の全スレッドが使用している資源"
7774 #: build/C/man2/getrusage.2:58
7776 msgid "B<RUSAGE_CHILDREN>"
7777 msgstr "B<RUSAGE_CHILDREN>"
7780 #: build/C/man2/getrusage.2:65
7782 "Return resource usage statistics for all children of the calling process "
7783 "that have terminated and been waited for. These statistics will include the "
7784 "resources used by grandchildren, and further removed descendants, if all of "
7785 "the intervening descendants waited on their terminated children."
7787 "呼び出したプロセスの子プロセスのうち、 終了して待ち状態にある全プロセスが使用"
7788 "している資源使用量の統計を返す。 これらの統計情報には、孫プロセスやその子孫の"
7789 "プロセスのうち、 削除待ちのものが使用している資源も含まれる。"
7792 #: build/C/man2/getrusage.2:65
7794 msgid "B<RUSAGE_THREAD> (since Linux 2.6.26)"
7795 msgstr "B<RUSAGE_THREAD> (Linux 2.6.26 以降)"
7798 #: build/C/man2/getrusage.2:68
7799 msgid "Return resource usage statistics for the calling thread."
7800 msgstr "呼び出したスレッドに関する資源使用量の統計を返す。"
7803 #: build/C/man2/getrusage.2:72
7805 "The resource usages are returned in the structure pointed to by I<usage>, "
7806 "which has the following form:"
7808 "資源使用量は I<usage> が指す構造体に格納されて返される。 構造体は以下の形式で"
7812 #: build/C/man2/getrusage.2:93
7815 #| "struct rusage {\n"
7816 #| " struct timeval ru_utime; /* user time used */\n"
7817 #| " struct timeval ru_stime; /* system time used */\n"
7818 #| " long ru_maxrss; /* maximum resident set size */\n"
7819 #| " long ru_ixrss; /* integral shared memory size */\n"
7820 #| " long ru_idrss; /* integral unshared data size */\n"
7821 #| " long ru_isrss; /* integral unshared stack size */\n"
7822 #| " long ru_minflt; /* page reclaims */\n"
7823 #| " long ru_majflt; /* page faults */\n"
7824 #| " long ru_nswap; /* swaps */\n"
7825 #| " long ru_inblock; /* block input operations */\n"
7826 #| " long ru_oublock; /* block output operations */\n"
7827 #| " long ru_msgsnd; /* messages sent */\n"
7828 #| " long ru_msgrcv; /* messages received */\n"
7829 #| " long ru_nsignals; /* signals received */\n"
7830 #| " long ru_nvcsw; /* voluntary context switches */\n"
7831 #| " long ru_nivcsw; /* involuntary context switches */\n"
7835 " struct timeval ru_utime; /* user CPU time used */\n"
7836 " struct timeval ru_stime; /* system CPU time used */\n"
7837 " long ru_maxrss; /* maximum resident set size */\n"
7838 " long ru_ixrss; /* integral shared memory size */\n"
7839 " long ru_idrss; /* integral unshared data size */\n"
7840 " long ru_isrss; /* integral unshared stack size */\n"
7841 " long ru_minflt; /* page reclaims (soft page faults) */\n"
7842 " long ru_majflt; /* page faults (hard page faults) */\n"
7843 " long ru_nswap; /* swaps */\n"
7844 " long ru_inblock; /* block input operations */\n"
7845 " long ru_oublock; /* block output operations */\n"
7846 " long ru_msgsnd; /* IPC messages sent */\n"
7847 " long ru_msgrcv; /* IPC messages received */\n"
7848 " long ru_nsignals; /* signals received */\n"
7849 " long ru_nvcsw; /* voluntary context switches */\n"
7850 " long ru_nivcsw; /* involuntary context switches */\n"
7854 " struct timeval ru_utime; /* 使用されたユーザー時間 */\n"
7855 " struct timeval ru_stime; /* 使用されたシステム時間 */\n"
7856 " long ru_maxrss; /* RAM 上に存在する仮想ページのサイズ\n"
7857 " (resident set size) の最大値 */\n"
7858 " long ru_ixrss; /* 共有メモリの合計サイズ */\n"
7859 " long ru_idrss; /* 非共有データの合計サイズ */\n"
7860 " long ru_isrss; /* 非共有スタックの合計サイズ */\n"
7861 " long ru_minflt; /* 利用されたページ */\n"
7862 " long ru_majflt; /* ページフォールト */\n"
7863 " long ru_nswap; /* スワップ */\n"
7864 " long ru_inblock; /* ブロック入力操作 */\n"
7865 " long ru_oublock; /* ブロック出力操作 */\n"
7866 " long ru_msgsnd; /* 送信されたメッセージ */\n"
7867 " long ru_msgrcv; /* 受信されたメッセージ */\n"
7868 " long ru_nsignals; /* 受信されたシグナル */\n"
7869 " long ru_nvcsw; /* 意図したコンテキスト切り替え */\n"
7870 " long ru_nivcsw; /* 意図しないコンテキスト切り替え */\n"
7874 #: build/C/man2/getrusage.2:101
7876 "Not all fields are completed; unmaintained fields are set to zero by the "
7877 "kernel. (The unmaintained fields are provided for compatibility with other "
7878 "systems, and because they may one day be supported on Linux.) The fields "
7879 "are interpreted as follows:"
7883 #: build/C/man2/getrusage.2:101
7885 #| msgid "I<msg_stime>"
7887 msgstr "I<msg_stime>"
7890 #: build/C/man2/getrusage.2:107
7892 "This is the total amount of time spent executing in user mode, expressed in "
7893 "a I<timeval> structure (seconds plus microseconds)."
7897 #: build/C/man2/getrusage.2:107
7899 #| msgid "I<msg_stime>"
7901 msgstr "I<msg_stime>"
7904 #: build/C/man2/getrusage.2:113
7906 "This is the total amount of time spent executing in kernel mode, expressed "
7907 "in a I<timeval> structure (seconds plus microseconds)."
7911 #: build/C/man2/getrusage.2:113
7913 #| msgid "I<mem_hardwall> (since Linux 2.6.26)"
7914 msgid "I<ru_maxrss> (since Linux 2.6.32)"
7915 msgstr "I<mem_hardwall> (since Linux 2.6.26)"
7918 #: build/C/man2/getrusage.2:119
7920 "This is the maximum resident set size used (in kilobytes). For "
7921 "B<RUSAGE_CHILDREN>, this is the resident set size of the largest child, not "
7922 "the maximum resident set size of the process tree."
7926 #: build/C/man2/getrusage.2:119
7928 msgid "I<ru_ixrss> (unmaintained)"
7931 #. On some systems, this field records the number of signals received.
7933 #: build/C/man2/getrusage.2:125 build/C/man2/getrusage.2:130
7934 #: build/C/man2/getrusage.2:135 build/C/man2/getrusage.2:147
7935 #: build/C/man2/getrusage.2:159 build/C/man2/getrusage.2:165
7936 #: build/C/man2/getrusage.2:169
7937 msgid "This field is currently unused on Linux."
7941 #: build/C/man2/getrusage.2:125
7943 msgid "I<ru_idrss> (unmaintained)"
7947 #: build/C/man2/getrusage.2:130
7949 msgid "I<ru_isrss> (unmaintained)"
7953 #: build/C/man2/getrusage.2:135
7955 msgid "I<ru_minflt>"
7959 #: build/C/man2/getrusage.2:140
7961 "The number of page faults serviced without any I/O activity; here I/O "
7962 "activity is avoided by ``reclaiming'' a page frame from the list of pages "
7963 "awaiting reallocation."
7967 #: build/C/man2/getrusage.2:140
7969 msgid "I<ru_majflt>"
7973 #: build/C/man2/getrusage.2:143
7974 msgid "The number of page faults serviced that required I/O activity."
7978 #: build/C/man2/getrusage.2:143
7980 msgid "I<ru_nswap> (unmaintained)"
7984 #: build/C/man2/getrusage.2:147
7986 #| msgid "I<mem_hardwall> (since Linux 2.6.26)"
7987 msgid "I<ru_inblock> (since Linux 2.6.22)"
7988 msgstr "I<mem_hardwall> (since Linux 2.6.26)"
7991 #: build/C/man2/getrusage.2:150
7992 msgid "The number of times the file system had to perform input."
7996 #: build/C/man2/getrusage.2:150
7998 #| msgid "I<sched_load_balance> (since Linux 2.6.24)"
7999 msgid "I<ru_oublock> (since Linux 2.6.22)"
8000 msgstr "I<sched_load_balance> (since Linux 2.6.24)"
8003 #: build/C/man2/getrusage.2:153
8004 msgid "The number of times the file system had to perform output."
8008 #: build/C/man2/getrusage.2:153
8010 msgid "I<ru_msgsnd> (unmaintained)"
8014 #: build/C/man2/getrusage.2:159
8016 msgid "I<ru_msgrcv> (unmaintained)"
8020 #: build/C/man2/getrusage.2:165
8022 msgid "I<ru_nsignals> (unmaintained)"
8026 #: build/C/man2/getrusage.2:169
8028 #| msgid "I<mem_hardwall> (since Linux 2.6.26)"
8029 msgid "I<ru_nvcsw> (since Linux 2.6)"
8030 msgstr "I<mem_hardwall> (since Linux 2.6.26)"
8033 #: build/C/man2/getrusage.2:174
8035 "The number of times a context switch resulted due to a process voluntarily "
8036 "giving up the processor before its time slice was completed (usually to "
8037 "await availability of a resource)."
8041 #: build/C/man2/getrusage.2:174
8043 #| msgid "I<memory_migrate> (since Linux 2.6.16)"
8044 msgid "I<ru_nivcsw> (since Linux 2.6)"
8045 msgstr "I<memory_migrate> (since Linux 2.6.16)"
8048 #: build/C/man2/getrusage.2:179
8050 "The number of times a context switch resulted due to a higher priority "
8051 "process becoming runnable or because the current process exceeded its time "
8056 #: build/C/man2/getrusage.2:190
8057 msgid "I<usage> points outside the accessible address space."
8058 msgstr "I<usage> がアクセス可能なアドレス空間の外を指している。"
8061 #: build/C/man2/getrusage.2:194
8062 msgid "I<who> is invalid."
8063 msgstr "I<who> が無効である。"
8066 #: build/C/man2/getrusage.2:202
8068 "SVr4, 4.3BSD. POSIX.1-2001 specifies B<getrusage>(), but only specifies the "
8069 "fields I<ru_utime> and I<ru_stime>."
8071 "SVr4, 4.3BSD. POSIX.1-2001 は B<getrusage>() を規定しているが、規定している"
8072 "フィールドは I<ru_utime> と I<ru_stime> だけである。"
8075 #: build/C/man2/getrusage.2:205
8076 msgid "B<RUSAGE_THREAD> is Linux-specific."
8077 msgstr "B<RUSAGE_THREAD> は Linux 固有である。"
8080 #: build/C/man2/getrusage.2:208
8081 msgid "Resource usage metrics are preserved across an B<execve>(2)."
8082 msgstr "B<execve>(2) の前後でリソース使用量の指標は保持される。"
8085 #: build/C/man2/getrusage.2:216
8087 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
8088 "portability. (Indeed, I<struct timeval> is defined in I<E<lt>sys/time."
8091 "今日では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、 インクルー"
8092 "ドしておけば移植性が増す。 (実際 I<struct timeval> は I<E<lt>sys/time."
8093 "hE<gt>> で定義されている。)"
8095 #. See the description of getrusage() in XSH.
8096 #. A similar statement was also in SUSv2.
8098 #: build/C/man2/getrusage.2:228
8100 "In Linux kernel versions before 2.6.9, if the disposition of B<SIGCHLD> is "
8101 "set to B<SIG_IGN> then the resource usages of child processes are "
8102 "automatically included in the value returned by B<RUSAGE_CHILDREN>, although "
8103 "POSIX.1-2001 explicitly prohibits this. This nonconformance is rectified in "
8104 "Linux 2.6.9 and later."
8106 "2.6.9 より前のバージョンの Linux カーネルでは、 B<SIGCHLD> の処理が "
8107 "B<SIG_IGN> に設定されていると、 子プロセスのリソース使用量が "
8108 "B<RUSAGE_CHILDREN> で返される値に自動的に含められる。 しかし POSIX.1-2001 で"
8109 "は、これを明確に禁止している。 この準拠していなかった点は、Linux 2.6.9 以降で"
8113 #: build/C/man2/getrusage.2:231
8115 "The structure definition shown at the start of this page was taken from "
8120 #: build/C/man2/getrusage.2:240
8123 #| "Ancient systems provided a B<vlimit>() function with a similar purpose "
8124 #| "to B<setrlimit>(). For backward compatibility, glibc also provides "
8125 #| "B<vlimit>(). All new applications should be written using B<setrlimit>()."
8127 "Ancient systems provided a B<vtimes>() function with a similar purpose to "
8128 "B<getrusage>(). For backward compatibility, glibc also provides B<vtimes>"
8129 "(). All new applications should be written using B<getrusage>()."
8131 "古いシステムでは、 B<setrlimit>() と同様の目的を持つ関数 B<vlimit>() が提供"
8132 "されていた。 後方互換性のため、glibc でも B<vlimit>() を提供している。 全て"
8133 "の新しいアプリケーションでは、 B<setrlimit>() を使用すべきである。"
8136 #: build/C/man2/getrusage.2:245
8137 msgid "See also the description of I</proc/PID/stat> in B<proc>(5)."
8138 msgstr "B<proc>(5) にある I</proc/PID/stat> の説明も参照のこと。"
8141 #: build/C/man2/getrusage.2:252
8143 "B<clock_gettime>(2), B<getrlimit>(2), B<times>(2), B<wait>(2), B<wait4>(2), "
8146 "B<clock_gettime>(2), B<getrlimit>(2), B<times>(2), B<wait>(2), B<wait4>(2), "
8150 #: build/C/man2/getsid.2:25
8156 #: build/C/man2/getsid.2:28
8157 msgid "getsid - get session ID"
8158 msgstr "getsid - セッション ID を取得する。"
8161 #: build/C/man2/getsid.2:32
8162 msgid "B<pid_t getsid(pid_t>I< pid>B<);>"
8163 msgstr "B<pid_t getsid(pid_t>I< pid>B<);>"
8166 #: build/C/man2/getsid.2:41
8167 msgid "B<getsid>():"
8168 msgstr "B<getsid>():"
8171 #: build/C/man2/getsid.2:44 build/C/man2/setpgid.2:77
8173 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
8175 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
8178 #: build/C/man2/getsid.2:46 build/C/man2/setpgid.2:79
8179 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
8180 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
8183 #: build/C/man2/getsid.2:57
8185 "I<getsid(0)> returns the session ID of the calling process. I<getsid(p)> "
8186 "returns the session ID of the process with process ID I<p>. (The session ID "
8187 "of a process is the process group ID of the session leader.)"
8189 "I<getsid(0)> は呼び出し元のプロセスのセッション ID を返す。 I<getsid(p)> はプ"
8190 "ロセス ID I<p> を持つプロセスのセッション ID を返す (プロセスのセッション ID "
8191 "は セッションリーダーのプロセスグループ ID である)。"
8194 #: build/C/man2/getsid.2:62
8196 "On success, a session ID is returned. On error, I<(pid_t)\\ -1> will be "
8197 "returned, and I<errno> is set appropriately."
8199 "成功すると、セッション ID が返される。 エラーの場合、I<(pid_t) -1> が返さ"
8200 "れ、 I<errno> が適切に設定される。"
8203 #: build/C/man2/getsid.2:69
8205 "A process with process ID I<p> exists, but it is not in the same session as "
8206 "the calling process, and the implementation considers this an error."
8208 "プロセス ID I<p> のプロセスは存在するが、呼び出し元のプロセスと同じセッション"
8209 "ではなく、 さらに実装がこの状態をエラーと判断した場合。"
8212 #: build/C/man2/getsid.2:74
8213 msgid "No process with process ID I<p> was found."
8214 msgstr "プロセス ID が I<p> のプロセスがない。"
8216 #. Linux has this system call since Linux 1.3.44.
8217 #. There is libc support since libc 5.2.19.
8219 #: build/C/man2/getsid.2:78
8220 msgid "This system call is available on Linux since version 2.0."
8221 msgstr "このシステムコールは Linux バージョン 2.0 以降で利用可能である。"
8224 #: build/C/man2/getsid.2:80 build/C/man2/setgid.2:76 build/C/man2/setsid.2:66
8225 msgid "SVr4, POSIX.1-2001."
8226 msgstr "SVr4, POSIX.1-2001."
8229 #: build/C/man2/getsid.2:83
8230 msgid "Linux does not return B<EPERM>."
8231 msgstr "Linux は B<EPERM> を返さない。"
8234 #: build/C/man2/getsid.2:87
8235 msgid "B<getpgid>(2), B<setsid>(2), B<credentials>(7)"
8236 msgstr "B<getpgid>(2), B<setsid>(2), B<credentials>(7)"
8239 #: build/C/man2/getuid.2:26
8245 #: build/C/man2/getuid.2:29
8246 msgid "getuid, geteuid - get user identity"
8247 msgstr "getuid, geteuid - ユーザー ID を得る"
8250 #: build/C/man2/getuid.2:35
8251 msgid "B<uid_t getuid(void);>"
8252 msgstr "B<uid_t getuid(void);>"
8255 #: build/C/man2/getuid.2:37
8256 msgid "B<uid_t geteuid(void);>"
8257 msgstr "B<uid_t geteuid(void);>"
8260 #: build/C/man2/getuid.2:40
8261 msgid "B<getuid>() returns the real user ID of the calling process."
8262 msgstr "B<getuid>() は呼び出し元のプロセスの実ユーザー ID を返す。"
8265 #: build/C/man2/getuid.2:43
8266 msgid "B<geteuid>() returns the effective user ID of the calling process."
8267 msgstr "B<geteuid>() は呼び出し元のプロセスの実効ユーザー ID を返す。"
8270 #: build/C/man2/getuid.2:48
8276 #: build/C/man2/getuid.2:57
8278 "In UNIX V6 the B<getuid>() call returned I<(euid E<lt>E<lt> 8) + uid>. "
8279 "UNIX V7 introduced separate calls B<getuid>() and B<geteuid>()."
8281 "UNIX V6 では B<getuid>() コールは I<(euid E<lt>E<lt> 8) + uid> を返してい"
8282 "た。 UNIX V7 では B<getuid>() と B<geteuid>() という別々のコールが導入され"
8286 #: build/C/man2/getuid.2:73
8288 "The original Linux B<getuid>() and B<geteuid>() system calls supported "
8289 "only 16-bit user IDs. Subsequently, Linux 2.4 added B<getuid32>() and "
8290 "B<geteuid32>(), supporting 32-bit IDs. The glibc B<getuid>() and B<geteuid>"
8291 "() wrapper functions transparently deal with the variations across kernel "
8296 #: build/C/man2/getuid.2:78
8297 msgid "B<getresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>(7)"
8298 msgstr "B<getresuid>(2), B<setreuid>(2), B<setuid>(2), B<credentials>(7)"
8301 #: build/C/man2/iopl.2:33
8307 #: build/C/man2/iopl.2:33
8313 #: build/C/man2/iopl.2:36
8314 msgid "iopl - change I/O privilege level"
8315 msgstr "iopl - I/O 特権レベルを変更する"
8318 #: build/C/man2/iopl.2:38
8319 msgid "B<#include E<lt>sys/io.hE<gt>>"
8320 msgstr "B<#include E<lt>sys/io.hE<gt>>"
8323 #: build/C/man2/iopl.2:40
8324 msgid "B<int iopl(int >I<level>B<);>"
8325 msgstr "B<int iopl(int >I<level>B<);>"
8328 #: build/C/man2/iopl.2:44
8330 "B<iopl>() changes the I/O privilege level of the calling process, as "
8331 "specified in I<level>."
8333 "B<iopl>() は呼び出し元のプロセスの I/O 特権レベルを I<level> で指定した値に"
8337 #: build/C/man2/iopl.2:50
8339 "This call is necessary to allow 8514-compatible X servers to run under "
8340 "Linux. Since these X servers require access to all 65536 I/O ports, the "
8341 "B<ioperm>(2) call is not sufficient."
8343 "この関数は 8514 互換の X サーバを Linux で動作させるために必要である。 なぜな"
8344 "らこの X サーバは 65536 個の I/O ポート全てへのアクセスを要求するので "
8345 "B<ioperm>(2) 関数では不十分だからである。"
8348 #: build/C/man2/iopl.2:54
8350 "In addition to granting unrestricted I/O port access, running at a higher I/"
8351 "O privilege level also allows the process to disable interrupts. This will "
8352 "probably crash the system, and is not recommended."
8354 "より高い I/O 特権レベルでの動作をさせることによって I/O ポートアクセスの制限"
8355 "を解除することに加えて、プロセスが割り込みを 無効にすることもできるようにな"
8356 "る。この機能は時としてシステムの破壊を もたらすので勧められない。"
8359 #: build/C/man2/iopl.2:59
8360 msgid "Permissions are inherited by B<fork>(2) and B<execve>(2)."
8361 msgstr "B<fork>(2) や B<exec>(2) を行った場合、特権は継承される。"
8364 #: build/C/man2/iopl.2:61
8365 msgid "The I/O privilege level for a normal process is 0."
8366 msgstr "通常のプロセスの I/O 特権レベルは 0 である。"
8369 #: build/C/man2/iopl.2:65
8371 "This call is mostly for the i386 architecture. On many other architectures "
8372 "it does not exist or will always return an error."
8374 "このシステムコールはほとんど i386 アーキテクチャのためだけのものである。 その"
8375 "他の多くのアーキテクチャでは存在しないか、常にエラーを返す。"
8378 #: build/C/man2/iopl.2:75
8379 msgid "I<level> is greater than 3."
8380 msgstr "引き数 I<level> が 3 より大きい。"
8383 #: build/C/man2/iopl.2:78
8384 msgid "This call is unimplemented."
8385 msgstr "このシステムコールは実装されていない。"
8388 #: build/C/man2/iopl.2:85
8390 "The calling process has insufficient privilege to call B<iopl>(); the "
8391 "B<CAP_SYS_RAWIO> capability is required."
8393 "呼び出し元プロセスに B<iopl>() を呼び出すのに十分な権限がなかった。 B<iopl>"
8394 "() を呼び出すには B<CAP_SYS_RAWIO> ケーパビリティが必要である。"
8397 #: build/C/man2/iopl.2:89
8399 "B<iopl>() is Linux-specific and should not be used in processes intended to "
8402 "B<iopl>() は Linux 特有の関数であり、移植を意図したプログラムで 使用してはな"
8406 #: build/C/man2/iopl.2:98
8408 "Libc5 treats it as a system call and has a prototype in I<E<lt>unistd."
8409 "hE<gt>>. Glibc1 does not have a prototype. Glibc2 has a prototype both in "
8410 "I<E<lt>sys/io.hE<gt>> and in I<E<lt>sys/perm.hE<gt>>. Avoid the latter, it "
8411 "is available on i386 only."
8413 "libc5 ではシステムコールとして扱い I<E<lt>unistd.hE<gt>> にプロトタイプが存在"
8414 "している。 glibc1 にはプロトタイプは存在していない。 glibc2 は I<E<lt>sys/io."
8415 "hE<gt>> と I<E<lt>sys/perm.hE<gt>> の両方にプロトタイプを持っている。 後者は "
8416 "i386 のみで利用可能なので、使用すべきではない。"
8419 #: build/C/man2/iopl.2:101
8420 msgid "B<ioperm>(2), B<capabilities>(7)"
8421 msgstr "B<ioperm>(2), B<capabilities>(7)"
8424 #: build/C/man2/ioprio_set.2:25
8430 #: build/C/man2/ioprio_set.2:25
8436 #: build/C/man2/ioprio_set.2:28
8437 msgid "ioprio_get, ioprio_set - get/set I/O scheduling class and priority"
8438 msgstr "ioprio_get, ioprio_set - I/O スケジューリングクラスと優先度の設定/取得"
8441 #: build/C/man2/ioprio_set.2:32
8444 "B<int ioprio_get(int >I<which>B<, int >I<who>B<);>\n"
8445 "B<int ioprio_set(int >I<which>B<, int >I<who>B<, int >I<ioprio>B<);>\n"
8447 "B<int ioprio_get(int >I<which>B<, int >I<who>B<);>\n"
8448 "B<int ioprio_set(int >I<which>B<, int >I<who>B<, int >I<ioprio>B<);>\n"
8451 #: build/C/man2/ioprio_set.2:40
8453 "The B<ioprio_get>() and B<ioprio_set>() system calls respectively get and "
8454 "set the I/O scheduling class and priority of one or more processes."
8456 "システムコール B<ioprio_get>() / B<ioprio_set>() は、(1つ以上の) プロセス"
8457 "の I/O スケジューリングクラスと 優先度の取得/設定を行う。"
8460 #: build/C/man2/ioprio_set.2:52
8462 "The I<which> and I<who> arguments identify the process(es) on which the "
8463 "system calls operate. The I<which> argument determines how I<who> is "
8464 "interpreted, and has one of the following values:"
8466 "I<which> と I<who> 引き数でシステムコールの操作対象となるプロセスを指示す"
8467 "る。 I<which> 引き数は、 I<who> をどのように解釈するかを決めるもので、以下の"
8471 #: build/C/man2/ioprio_set.2:52
8473 msgid "B<IOPRIO_WHO_PROCESS>"
8474 msgstr "B<IOPRIO_WHO_PROCESS>"
8477 #: build/C/man2/ioprio_set.2:56
8478 msgid "I<who> is a process ID identifying a single process."
8479 msgstr "I<who> はプロセスID であり、指定された 1 プロセスが対象となる。"
8482 #: build/C/man2/ioprio_set.2:56
8484 msgid "B<IOPRIO_WHO_PGRP>"
8485 msgstr "B<IOPRIO_WHO_PGRP>"
8488 #: build/C/man2/ioprio_set.2:60
8490 "I<who> is a process group ID identifying all the members of a process group."
8492 "I<who> はプロセスグループID であり、プロセスグループの全メンバが対象となる。"
8495 #: build/C/man2/ioprio_set.2:60
8497 msgid "B<IOPRIO_WHO_USER>"
8498 msgstr "B<IOPRIO_WHO_USER>"
8501 #: build/C/man2/ioprio_set.2:65
8503 "I<who> is a user ID identifying all of the processes that have a matching "
8505 msgstr "I<who> はユーザID であり、実 UID に一致する全プロセスが対象となる。"
8508 #: build/C/man2/ioprio_set.2:88
8510 "If I<which> is specified as B<IOPRIO_WHO_PGRP> or B<IOPRIO_WHO_USER> when "
8511 "calling B<ioprio_get>(), and more than one process matches I<who>, then the "
8512 "returned priority will be the highest one found among all of the matching "
8513 "processes. One priority is said to be higher than another one if it belongs "
8514 "to a higher priority class (B<IOPRIO_CLASS_RT> is the highest priority "
8515 "class; B<IOPRIO_CLASS_IDLE> is the lowest) or if it belongs to the same "
8516 "priority class as the other process but has a higher priority level (a lower "
8517 "priority number means a higher priority level)."
8519 "B<ioprio_get>() の呼び出し時に I<which> に B<IOPRIO_WHO_PGRP> か "
8520 "B<IOPRIO_WHO_USER> が指定され、 I<who> に一致するプロセスが複数あった場合、 "
8521 "一致するプロセス全体の中で最も高い優先度が返される。 優先度が高いとは、より高"
8522 "い優先度クラスに属している (B<IOPRIO_CLASS_RT> が最も高い優先度クラスで、 "
8523 "B<IOPRIO_CLASS_IDLE> が最も低い)、もしくは 同じ優先度クラスに属しているが優先"
8524 "度レベルが高い (優先度番号が小さい方が優先度レベルが高いことを意味する)、 と"
8528 #: build/C/man2/ioprio_set.2:98
8530 "The I<ioprio> argument given to B<ioprio_set>() is a bit mask that "
8531 "specifies both the scheduling class and the priority to be assigned to the "
8532 "target process(es). The following macros are used for assembling and "
8533 "dissecting I<ioprio> values:"
8535 "B<ioprio_set>() に渡す I<ioprio> 引き数は、対象となるプロセスに割り当てるス"
8536 "ケジューリングクラスと 優先度の両方を指定するビットマスクである。 I<ioprio> "
8537 "の値を組み立てたり解釈するのに、以下のマクロが利用できる。"
8540 #: build/C/man2/ioprio_set.2:98
8542 msgid "B<IOPRIO_PRIO_VALUE(>I<class>B<, >I<data>B<)>"
8543 msgstr "B<IOPRIO_PRIO_VALUE(>I<class>B<, >I<data>B<)>"
8546 #: build/C/man2/ioprio_set.2:107
8548 "Given a scheduling I<class> and priority (I<data>), this macro combines the "
8549 "two values to produce an I<ioprio> value, which is returned as the result of "
8552 "スケジューリングクラス I<class> と優先度 (I<data>) を与えると、このマクロは "
8553 "2つの値を組み合わせて、 I<ioprio> 値を生成し、マクロの結果として返す。"
8556 #: build/C/man2/ioprio_set.2:107
8558 msgid "B<IOPRIO_PRIO_CLASS(>I<mask>B<)>"
8559 msgstr "B<IOPRIO_PRIO_CLASS(>I<mask>B<)>"
8562 #: build/C/man2/ioprio_set.2:119
8564 "Given I<mask> (an I<ioprio> value), this macro returns its I/O class "
8565 "component, that is, one of the values B<IOPRIO_CLASS_RT>, "
8566 "B<IOPRIO_CLASS_BE>, or B<IOPRIO_CLASS_IDLE>."
8568 "I<mask> (I<ioprio> 値) を与えると、このマクロは I/O クラス要素、つまり "
8569 "B<IOPRIO_CLASS_RT>, B<IOPRIO_CLASS_BE>, B<IOPRIO_CLASS_IDLE> のいずれか一つの"
8573 #: build/C/man2/ioprio_set.2:119
8575 msgid "B<IOPRIO_PRIO_DATA(>I<mask>B<)>"
8576 msgstr "B<IOPRIO_PRIO_DATA(>I<mask>B<)>"
8579 #: build/C/man2/ioprio_set.2:128
8581 "Given I<mask> (an I<ioprio> value), this macro returns its priority "
8582 "(I<data>) component."
8584 "I<mask> (I<ioprio> 値) を与えると、このマクロは優先度 (I<data>) 要素を返す。"
8587 #: build/C/man2/ioprio_set.2:131
8589 "See the NOTES section for more information on scheduling classes and "
8592 "スケジューリングクラスと優先度に関する詳しい情報は、 「備考」の節を参照のこ"
8596 #: build/C/man2/ioprio_set.2:139
8598 "I/O priorities are supported for reads and for synchronous (B<O_DIRECT>, "
8599 "B<O_SYNC>) writes. I/O priorities are not supported for asynchronous "
8600 "writes because they are issued outside the context of the program dirtying "
8601 "the memory, and thus program-specific priorities do not apply."
8603 "I/O 優先度は読み出しと同期書き込み (B<O_DIRECT>, B<O_SYNC>) に対応してい"
8604 "る。 I/O 優先度は非同期書き込みには対応していない。なぜなら、 非同期書き込み"
8605 "はメモリ書き換えを行うプログラムの動作 (context) とは 関係なく発行され、その"
8606 "ためプログラム単位の優先度は適用されないから である。"
8609 #: build/C/man2/ioprio_set.2:152
8611 "On success, B<ioprio_get>() returns the I<ioprio> value of the process with "
8612 "highest I/O priority of any of the processes that match the criteria "
8613 "specified in I<which> and I<who>. On error, -1 is returned, and I<errno> is "
8614 "set to indicate the error."
8616 "成功すると、 B<ioprio_get>() は、 I<which> と I<who> で指定された基準に合致"
8617 "した全プロセスで最も高い I/O 優先度を持つプロセスの I<ioprio> 値を返す。 エ"
8618 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8621 #: build/C/man2/ioprio_set.2:159
8623 "On success, B<ioprio_set>() returns 0. On error, -1 is returned, and "
8624 "I<errno> is set to indicate the error."
8626 "成功すると、 B<ioprio_set>() は 0 を返す。 エラーの場合、-1 を返し、 "
8627 "I<errno> にエラーを示す値を設定する。"
8630 #: build/C/man2/ioprio_set.2:169
8632 "Invalid value for I<which> or I<ioprio>. Refer to the NOTES section for "
8633 "available scheduler classes and priority levels for I<ioprio>."
8635 "I<which> か I<ioprio> の値が不正である。 I<ioprio> 用に指定可能なスケジューラ"
8636 "クラスと優先度レベルについては 「備考」を参照のこと。"
8639 #: build/C/man2/ioprio_set.2:177
8641 "The calling process does not have the privilege needed to assign this "
8642 "I<ioprio> to the specified process(es). See the NOTES section for more "
8643 "information on required privileges for B<ioprio_set>()."
8645 "呼び出し元プロセスが、指定されたプロセスに I<ioprio> を割り当てるのに必要な権"
8646 "限を持っていない。 B<ioprio_set>() に必要な権限についての詳しい情報は「備"
8650 #: build/C/man2/ioprio_set.2:183
8652 "No process(es) could be found that matched the specification in I<which> and "
8655 "I<which> と I<who> で指定された基準に合致するプロセスが見つからなかった。"
8658 #: build/C/man2/ioprio_set.2:186
8659 msgid "These system calls have been available on Linux since kernel 2.6.13."
8661 "これらのシステムコールはカーネル 2.6.13 以降の Linux で利用可能である。"
8664 #: build/C/man2/ioprio_set.2:191
8666 "Glibc does not provide wrapper for these system calls; call them using "
8669 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
8670 "B<syscall>(2) を使って呼び出すこと。"
8673 #: build/C/man2/ioprio_set.2:196
8675 "These system calls only have an effect when used in conjunction with an I/O "
8676 "scheduler that supports I/O priorities. As at kernel 2.6.17 the only such "
8677 "scheduler is the Completely Fair Queuing (CFQ) I/O scheduler."
8679 "これらのシステムコールは、I/O 優先度に対応した I/O スケジューラと 組み合わせ"
8680 "て使用された場合にのみ効果を持つ。 カーネル 2.6.17 では、この条件を満たすスケ"
8681 "ジューラは Completely Fair Queuing (CFQ) I/O スケジューラだけである。"
8684 #: build/C/man2/ioprio_set.2:196
8686 msgid "Selecting an I/O Scheduler"
8687 msgstr "I/O スケジューラの選択"
8690 #: build/C/man2/ioprio_set.2:200
8692 "I/O Schedulers are selected on a per-device basis via the special file I</"
8693 "sys/block/E<lt>deviceE<gt>/queue/scheduler>."
8695 "I/O スケジューラの選択はデバイス単位に行われ、その選択は スペシャルファイル "
8696 "I</sys/block/E<lt>deviceE<gt>/queue/scheduler> 経由で行われる。"
8699 #: build/C/man2/ioprio_set.2:206
8701 "One can view the current I/O scheduler via the I</sys> file system. For "
8702 "example, the following command displays a list of all schedulers currently "
8703 "loaded in the kernel:"
8705 "現在の I/O スケジューラは I</sys> ファイルシステム経由で参照できる。例えば、"
8706 "以下のコマンドを実行すると、 現在カーネルでロードされているスケジューラの全リ"
8710 #: build/C/man2/ioprio_set.2:211
8713 "$B< cat /sys/block/hda/queue/scheduler>\n"
8714 "noop anticipatory deadline [cfq]\n"
8716 "$B< cat /sys/block/hda/queue/scheduler>\n"
8717 "noop anticipatory deadline [cfq]\n"
8720 #: build/C/man2/ioprio_set.2:225
8722 "The scheduler surrounded by brackets is the one actually in use for the "
8723 "device (I<hda> in the example). Setting another scheduler is done by "
8724 "writing the name of the new scheduler to this file. For example, the "
8725 "following command will set the scheduler for the I<hda> device to I<cfq>:"
8727 "括弧で囲まれたスケジューラがそのデバイス (上の例では I<hda>) について実際に"
8728 "使用されているスケジューラである。 別のスケジューラを設定するには、このファイ"
8729 "ルに新しいスケジューラ名を 書き込めばよい。例えば、以下のコマンドを実行する"
8730 "と、デバイス I<hda> のスケジューラとして I<cfq> が設定される。"
8733 #: build/C/man2/ioprio_set.2:231
8738 "#B< echo cfq E<gt> /sys/block/hda/queue/scheduler>\n"
8742 "#B< echo cfq E<gt> /sys/block/hda/queue/scheduler>\n"
8745 #: build/C/man2/ioprio_set.2:233
8747 msgid "The Completely Fair Queuing (CFQ) I/O Scheduler"
8748 msgstr "Completely Fair Queuing (CFQ) I/O スケジューラ"
8751 #: build/C/man2/ioprio_set.2:239
8753 "Since v3 (aka CFQ Time Sliced) CFQ implements I/O nice levels similar to "
8754 "those of CPU scheduling. These nice levels are grouped in three scheduling "
8755 "classes each one containing one or more priority levels:"
8757 "バージョン 3 (別名 CFQ Time Sliced) 以降、 CPU スケジューリングと同様の I/O "
8758 "nice レベルが CFQ に実装されている。 これらの nice レベルは 3つのスケジューリ"
8759 "ングクラスに分類でき、 各スケジューリングクラスにつき 1つ以上の優先度レベルが"
8763 #: build/C/man2/ioprio_set.2:239
8765 msgid "B<IOPRIO_CLASS_RT> (1)"
8766 msgstr "B<IOPRIO_CLASS_RT> (1)"
8769 #: build/C/man2/ioprio_set.2:254
8771 "This is the real-time I/O class. This scheduling class is given higher "
8772 "priority than any other class: processes from this class are given first "
8773 "access to the disk every time. Thus this I/O class needs to be used with "
8774 "some care: one I/O real-time process can starve the entire system. Within "
8775 "the real-time class, there are 8 levels of class data (priority) that "
8776 "determine exactly how much time this process needs the disk for on each "
8777 "service. The highest real-time priority level is 0; the lowest is 7. In "
8778 "the future this might change to be more directly mappable to performance, by "
8779 "passing in a desired data rate instead."
8781 "これはリアルタイム I/O クラスである。 このスケジューリングクラスには他のクラ"
8782 "スよりも高い優先度が与えられる。 このクラスのプロセスには、常にディスクへのア"
8783 "クセスが優先して 割り当てられる。そのため、この I/O クラスを使う際には、 たっ"
8784 "た一つの リアルタイム I/O クラスのプロセスにより システム全体のディスクアクセ"
8785 "スができなくなってしまうことがある という点に、注意を払う必要がある。 このク"
8786 "ラスには、8 段階の class data (優先度レベル) がある。 この値は、そのプロセス"
8787 "が 1回のディスクアクセスにどれだけの 時間が必要かを正確に決めるためのものであ"
8788 "る。 最高のリアルタイム優先度レベルは 0 で、最低は 7 である。 将来的には、優"
8789 "先度レベルは、希望するデータレートを渡すなど、 より直接的に性能条件を反映でき"
8793 #: build/C/man2/ioprio_set.2:254
8795 msgid "B<IOPRIO_CLASS_BE> (2)"
8796 msgstr "B<IOPRIO_CLASS_BE> (2)"
8799 #: build/C/man2/ioprio_set.2:267
8801 "This is the best-effort scheduling class, which is the default for any "
8802 "process that hasn't set a specific I/O priority. The class data (priority) "
8803 "determines how much I/O bandwidth the process will get. Best-effort "
8804 "priority levels are analogous to CPU nice values (see B<getpriority>(2)). "
8805 "The priority level determines a priority relative to other processes in the "
8806 "best-effort scheduling class. Priority levels range from 0 (highest) to 7 "
8809 "これは ベストエフォート・スケジューリングクラスである。 このクラスは、特定の "
8810 "I/O 優先度を設定していないプロセスの デフォルト値である。 class data (優先度"
8811 "レベル) により、そのプロセスがどの程度の I/O 帯域を得られるかが決定される。 "
8812 "ベストエフォート・優先度レベルは、CPU の nice 値 (B<getpriority>(2) 参照) と"
8813 "同様のものである。 優先度レベルは、ベストエフォート・スケジューリングクラスの"
8814 "中で 他のプロセスとの相対的な優先度を決定する。 優先度レベルの値の範囲は 0 "
8815 "(最高) から 7 (最低) である。"
8818 #: build/C/man2/ioprio_set.2:267
8820 msgid "B<IOPRIO_CLASS_IDLE> (3)"
8821 msgstr "B<IOPRIO_CLASS_IDLE> (3)"
8824 #: build/C/man2/ioprio_set.2:276
8826 "This is the idle scheduling class. Processes running at this level only get "
8827 "I/O time when no-one else needs the disk. The idle class has no class "
8828 "data. Attention is required when assigning this priority class to a "
8829 "process, since it may become starved if higher priority processes are "
8830 "constantly accessing the disk."
8832 "これは idle スケジューリングクラスである。 このレベルで動作するプロセスは他に"
8833 "ディスクアクセスをしようとする プロセスがない場合にのみ I/O 時間を取得する。 "
8834 "idle クラスには class data (優先度) は用意されていない。 プロセスにこの優先度"
8835 "を割り当てる際には注意が必要である。 なぜなら、優先度の高いプロセスが常にディ"
8836 "スクにアクセスしている場合には ディスクにアクセスできなくなる可能性があるから"
8840 #: build/C/man2/ioprio_set.2:280
8842 "Refer to I<Documentation/block/ioprio.txt> for more information on the CFQ I/"
8843 "O Scheduler and an example program."
8845 "CFQ I/O スケジューラの更なる情報とサンプルプログラムについては "
8846 "I<Documentation/block/ioprio.txt> を参照のこと。"
8849 #: build/C/man2/ioprio_set.2:280
8851 msgid "Required permissions to set I/O priorities"
8852 msgstr "I/O 優先度の設定に必要な許可"
8855 #: build/C/man2/ioprio_set.2:283
8857 "Permission to change a process's priority is granted or denied based on two "
8860 "プロセスの優先度を変更する許可が得られるかどうかは 以下の 2つの条件に基いて決"
8864 #: build/C/man2/ioprio_set.2:283
8866 msgid "B<Process ownership>"
8867 msgstr "B<プロセスの所有権>"
8870 #: build/C/man2/ioprio_set.2:291
8872 "An unprivileged process may only set the I/O priority of a process whose "
8873 "real UID matches the real or effective UID of the calling process. A "
8874 "process which has the B<CAP_SYS_NICE> capability can change the priority of "
8877 "非特権プロセスは、プロセスの実 UID が呼び出し元プロセスの実 UID もしくは 実"
8878 "効 UID と一致するプロセスの I/O 優先度のみを設定できる。 B<CAP_SYS_NICE> ケー"
8879 "パビリティを持つプロセスは、どのプロセスの優先度でも変更できる。"
8882 #: build/C/man2/ioprio_set.2:291
8884 msgid "B<What is the desired priority>"
8885 msgstr "B<どの優先度に設定しようとしているか>"
8888 #: build/C/man2/ioprio_set.2:303
8890 "Attempts to set very high priorities (B<IOPRIO_CLASS_RT>) require the "
8891 "B<CAP_SYS_ADMIN> capability. Kernel versions up to 2.6.24 also required "
8892 "B<CAP_SYS_ADMIN> to set a very low priority (B<IOPRIO_CLASS_IDLE>), but "
8893 "since Linux 2.6.25, this is no longer required."
8895 "非常に高い優先度 (B<IOPRIO_CLASS_RT>) を設定しようとする場合、 "
8896 "B<CAP_SYS_ADMIN> ケーパビリティが必要である。 カーネル 2.6.24 以前では、非常"
8897 "に低い優先度 (B<IOPRIO_CLASS_IDLE>) を設定するためにも B<CAP_SYS_ADMIN> ケー"
8898 "パビリティが必要であったが、 Linux 2.6.25 以降ではもはや必要なくなった。"
8901 #: build/C/man2/ioprio_set.2:308
8903 "A call to B<ioprio_set>() must follow both rules, or the call will fail "
8904 "with the error B<EPERM>."
8906 "B<ioprio_set>() はこの両方のルールに従い、条件を満たさない場合、エラー "
8909 #. 6 May 07: Bug report raised:
8910 #. http://sources.redhat.com/bugzilla/show_bug.cgi?id=4464
8911 #. Ulrich Drepper replied that he wasn't going to add these
8914 #: build/C/man2/ioprio_set.2:317
8916 "Glibc does not yet provide a suitable header file defining the function "
8917 "prototypes and macros described on this page. Suitable definitions can be "
8918 "found in I<linux/ioprio.h>."
8920 "glibc は、このページに記載された関数プロトタイプやマクロを定義する 適切なヘッ"
8921 "ダファイルをまだ提供していない。 必要な定義については I<linux/ioprio.h> を見"
8925 #: build/C/man2/ioprio_set.2:321
8926 msgid "B<getpriority>(2), B<open>(2), B<capabilities>(7)"
8927 msgstr "B<getpriority>(2), B<open>(2), B<capabilities>(7)"
8930 #: build/C/man2/ioprio_set.2:323
8931 msgid "Documentation/block/ioprio.txt in the kernel source tree."
8932 msgstr "カーネル・ソース内の Documentation/block/ioprio.txt"
8935 #: build/C/man2/ipc.2:26
8941 #: build/C/man2/ipc.2:26
8947 #: build/C/man2/ipc.2:29
8948 msgid "ipc - System V IPC system calls"
8949 msgstr "ipc - System V IPC システム・コール"
8952 #: build/C/man2/ipc.2:34
8955 "B<int ipc(unsigned int >I<call>B<, int >I<first>B<, int >I<second>B<, int >I<third>B<,>\n"
8956 "B< void *>I<ptr>B<, long >I<fifth>B<);>\n"
8958 "B<int ipc(unsigned int >I<call>B<, int >I<first>B<, int >I<second>B<, int >I<third>B<,>\n"
8959 "B< void *>I<ptr>B<, long >I<fifth>B<);>\n"
8962 #: build/C/man2/ipc.2:42
8964 "B<ipc>() is a common kernel entry point for the System V IPC calls for "
8965 "messages, semaphores, and shared memory. I<call> determines which IPC "
8966 "function to invoke; the other arguments are passed through to the "
8969 "B<ipc>() は メッセージ、セマフォー、共有メモリに関する System V IPC コール"
8970 "の 共通のカーネルへのエントリ・ポイントである。 I<call> はどの IPC 関数を呼び"
8971 "出すかを決め; 他の引き数は適切なコールへと渡される。"
8974 #: build/C/man2/ipc.2:46
8976 "User programs should call the appropriate functions by their usual names. "
8977 "Only standard library implementors and kernel hackers need to know about "
8980 "ユーザー・プログラムは通常の名前で適切な関数を呼び出すべきである。 標準ライブ"
8981 "ラリの実装者やカーネル・ハッカーのみが B<ipc>() について知る必要がある。"
8984 #: build/C/man2/ipc.2:50
8986 "B<ipc>() is Linux-specific, and should not be used in programs intended to "
8989 "B<ipc>() は Linux 特有であり、 移植を意図したプログラムでは 使用してはいけな"
8993 #: build/C/man2/ipc.2:58
8995 "On a few architectures, for example ia64, there is no B<ipc>() system call; "
8996 "instead B<msgctl>(2), B<semctl>(2), B<shmctl>(2), and so on really are "
8997 "implemented as separate system calls."
8999 "ia64 などのいくつかのアーキテクチャでは、システムコール B<ipc>() が存在しな"
9000 "い。実際には、その代わりに B<msgctl>(2), B<semctl>(2), B<shmctl>(2) などが独"
9001 "立したシステムコールとして実装されている。"
9004 #: build/C/man2/ipc.2:71
9006 "B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>(2), "
9007 "B<semget>(2), B<semop>(2), B<semtimedop>(2), B<shmat>(2), B<shmctl>(2), "
9008 "B<shmdt>(2), B<shmget>(2)"
9010 "B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>(2), "
9011 "B<semget>(2), B<semop>(2), B<shmat>(2), B<shmctl>(2), B<shmdt>(2), B<shmget>"
9015 #: build/C/man2/seteuid.2:27
9021 #: build/C/man2/seteuid.2:27
9027 #: build/C/man2/seteuid.2:30
9028 msgid "seteuid, setegid - set effective user or group ID"
9029 msgstr "seteuid, setegid - 実効ユーザー ID や 実効グループ ID を設定する"
9032 #: build/C/man2/seteuid.2:36
9033 msgid "B<int seteuid(uid_t >I<euid>B<);>"
9034 msgstr "B<int seteuid(uid_t >I<euid>B<);>"
9037 #: build/C/man2/seteuid.2:38
9038 msgid "B<int setegid(gid_t >I<egid>B<);>"
9039 msgstr "B<int setegid(gid_t >I<egid>B<);>"
9042 #: build/C/man2/seteuid.2:47
9043 msgid "B<seteuid>(), B<setegid>():"
9044 msgstr "B<seteuid>(), B<setegid>():"
9047 #: build/C/man2/seteuid.2:49
9049 "_BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>="
9052 "_BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>="
9056 #: build/C/man2/seteuid.2:56
9058 "B<seteuid>() sets the effective user ID of the calling process. "
9059 "Unprivileged user processes may only set the effective user ID to the real "
9060 "user ID, the effective user ID or the saved set-user-ID."
9062 "B<seteuid>() は呼び出し元のプロセスの実効ユーザー ID を設定する。 非特権ユー"
9063 "ザーのプロセスの場合、実効ユーザー ID に設定できるのは、 実ユーザー ID・実効"
9064 "ユーザー ID・保存 set-user-ID のいずれかだけである。"
9068 #. equals \-1, nothing is changed.
9069 #. (This is an artifact of the implementation in glibc of seteuid()
9070 #. using setresuid(2).)
9072 #: build/C/man2/seteuid.2:65
9074 "Precisely the same holds for B<setegid>() with \"group\" instead of \"user"
9077 "B<setegid>() は「ユーザー」ではなく「グループ」に対して全く同じことを行う。"
9080 #: build/C/man2/seteuid.2:89
9082 "The calling process is not privileged (Linux: does not have the "
9083 "B<CAP_SETUID> capability in the case of B<seteuid>(), or the B<CAP_SETGID> "
9084 "capability in the case of B<setegid>()) and I<euid> (respectively, "
9085 "I<egid>) is not the real user (group) ID, the effective user (group) ID, or "
9086 "the saved set-user-ID (saved set-group-ID)."
9088 "呼び出し元のプロセスに特権がなく、 I<euid> (I<egid>) が実ユーザー (グルー"
9089 "プ) ID、または実効ユーザー (グループ) ID、 保存 set-user-ID (保存 set-group-"
9090 "ID) のいずれでもではない (Linux においては、 B<seteuid>() では "
9091 "B<CAP_SETUID> ケーパビリティ (capability) が、 B<setegid>() では "
9092 "B<CAP_SETGID> ケーパビリティがない場合に、特権がないと判断される)。"
9095 #: build/C/man2/seteuid.2:91
9096 msgid "4.3BSD, POSIX.1-2001."
9097 msgstr "4.3BSD, POSIX.1-2001."
9100 #: build/C/man2/seteuid.2:97
9102 "Setting the effective user (group) ID to the saved set-user-ID (saved set-"
9103 "group-ID) is possible since Linux 1.1.37 (1.1.38). On an arbitrary system "
9104 "one should check B<_POSIX_SAVED_IDS>."
9106 "実効ユーザー (グループ) ID を保存 set-user-ID (保存 set-group-ID) に 設定でき"
9107 "るのは、Linux 1.1.37 (1.1.38) 以降である。 全てのシステムにおいて "
9108 "B<_POSIX_SAVED_IDS> をチェックすべきである。"
9111 #: build/C/man2/seteuid.2:108
9113 "Under libc4, libc5 and glibc 2.0 B<seteuid(>I<euid>B<)> is equivalent to "
9114 "B<setreuid(-1,>I< euid>B<)> and hence may change the saved set-user-ID. "
9115 "Under glibc 2.1 and later it is equivalent to B<setresuid(-1,>I< euid>B<, -1)"
9116 "> and hence does not change the saved set-user-ID. Similar remarks hold for "
9119 "libc4, libc5, glibc 2.0 では、 B<seteuid(>I<euid>B<)> は B<setreuid(-1,>I< "
9120 "euid>B<)> と等価であり、保存 set-user-ID を変更するかもしれない。 glibc 2.1 "
9121 "では、 B<setresuid(-1,>I< euid>B<, -1)> と等価であり、保存 set-user-ID 変更し"
9122 "ない。 同様のことが B<setegid>() にも言える。"
9125 #: build/C/man2/seteuid.2:117
9127 "According to POSIX.1, B<seteuid>() (B<setegid>()) need not permit I<euid> "
9128 "(I<egid>) to be the same value as the current effective user (group) ID, "
9129 "and some implementations do not permit this."
9131 "POSIX.1 では、 B<seteuid>() (B<setegid>()) で、 I<euid> (I<egid>) として現"
9132 "在の実効ユーザ (グループ) ID と同じ値を指定可能である 必要はないとされてお"
9133 "り、いくつかの実装では I<euid> (I<egid>) として現在の実効ユーザ (グループ) "
9134 "ID と同じ値を 指定することができない。"
9137 #: build/C/man2/seteuid.2:124
9139 "B<geteuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<capabilities>"
9140 "(7), B<credentials>(7)"
9142 "B<geteuid>(2), B<setresuid>(2), B<setreuid>(2), B<setuid>(2), B<capabilities>"
9143 "(7), B<credentials>(7)"
9146 #: build/C/man2/setfsgid.2:29
9152 #: build/C/man2/setfsgid.2:32
9153 msgid "setfsgid - set group identity used for file system checks"
9155 "setfsgid - ファイル・システムのチェックに用いられるグループ ID を設定する"
9158 #: build/C/man2/setfsgid.2:35 build/C/man2/setfsuid.2:35
9159 msgid "B<#include E<lt>unistd.hE<gt>> /* glibc uses E<lt>sys/fsuid.hE<gt> */"
9160 msgstr "B<#include E<lt>unistd.hE<gt>> /* glibc では E<lt>sys/fsuid.hE<gt> */"
9163 #: build/C/man2/setfsgid.2:37
9164 msgid "B<int setfsgid(uid_t >I<fsgid>B<);>"
9165 msgstr "B<int setfsgid(uid_t >I<fsgid>B<);>"
9168 #: build/C/man2/setfsgid.2:49
9170 "The system call B<setfsgid>() sets the group ID that the Linux kernel uses "
9171 "to check for all accesses to the file system. Normally, the value of "
9172 "I<fsgid> will shadow the value of the effective group ID. In fact, whenever "
9173 "the effective group ID is changed, I<fsgid> will also be changed to the new "
9174 "value of the effective group ID."
9176 "システムコール B<setfsgid>() は Linux カーネルがファイル・システムに対する "
9177 "全てのアクセスのチェックに使用するグループ IDを設定する。通常は I<fsgid> の値"
9178 "は実効 (effective) グループID と同じになる。実際、 実効グループ ID が変更され"
9179 "る度に I<fsgid> もまた新しい実効グループID の値に変更される。"
9182 #: build/C/man2/setfsgid.2:60
9184 "Explicit calls to B<setfsuid>(2) and B<setfsgid>() are usually only used "
9185 "by programs such as the Linux NFS server that need to change what user and "
9186 "group ID is used for file access without a corresponding change in the real "
9187 "and effective user and group IDs. A change in the normal user IDs for a "
9188 "program such as the NFS server is a security hole that can expose it to "
9189 "unwanted signals. (But see below.)"
9191 "通常、 B<setfsuid>() や B<setfsgid>() が明示的に呼び出されるのは、Linux "
9192 "NFS サーバー のように、 ファイル・アクセスに用いるユーザID / グループID を変"
9193 "更しなければならないが、 対応する実(real)/実効(effective) ユーザID / グループ"
9194 "ID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラ"
9195 "ムで、通常のユーザID を変更すると、 プロセスを望まないシグナルにさらす可能性"
9196 "があり、 セキュリティ・ホールになる。(下記参照)"
9199 #: build/C/man2/setfsgid.2:67
9201 "B<setfsgid>() will only succeed if the caller is the superuser or if "
9202 "I<fsgid> matches either the real group ID, effective group ID, saved set-"
9203 "group-ID, or the current value of I<fsgid>."
9205 "B<setfsgid>() は、スーパー・ユーザによって呼び出された場合か、 I<fsgid> が実"
9206 "グループID、実効グループID、 保存セットグループID (saved set-group-ID)、現在"
9207 "の I<fsgid> の値のいずれかに一致する場合にのみ成功する。"
9210 #: build/C/man2/setfsgid.2:74
9212 "On success, the previous value of I<fsgid> is returned. On error, the "
9213 "current value of I<fsgid> is returned."
9215 "成功した場合、 I<fsgid> の以前の値を返す。エラーの場合は I<fsgid> の現在の値"
9218 #. This system call is present since Linux 1.1.44
9219 #. and in libc since libc 4.7.6.
9221 #: build/C/man2/setfsgid.2:78 build/C/man2/setfsuid.2:78
9222 msgid "This system call is present in Linux since version 1.2."
9223 msgstr "このシステムコールはバージョン 1.2 以降の Linux に存在する。"
9226 #: build/C/man2/setfsgid.2:82
9228 "B<setfsgid>() is Linux-specific and should not be used in programs intended "
9231 "B<setfsgid>() は Linux 特有であり、移植を想定したプログラムで使用してはいけ"
9235 #: build/C/man2/setfsgid.2:88
9237 "When glibc determines that the argument is not a valid group ID, it will "
9238 "return -1 and set I<errno> to B<EINVAL> without attempting the system call."
9240 "glibc が引き数がグループID として不正だと判断した場合は、 システム・コールを"
9241 "行わず I<errno> に B<EINVAL> を設定して -1 が返される。"
9244 #: build/C/man2/setfsgid.2:92 build/C/man2/setfsuid.2:92
9246 "Note that at the time this system call was introduced, a process could send "
9247 "a signal to a process with the same effective user ID. Today signal "
9248 "permission handling is slightly different."
9250 "このシステムコールが導入された当時、プロセスは 同じ実効ユーザIDのプロセスへシ"
9251 "グナルを送ることができた。 今日では、シグナル送信権限の扱いはかなり違うものに"
9255 #: build/C/man2/setfsgid.2:102
9257 "The original Linux B<setfsgid>() system call supported only 16-bit group "
9258 "IDs. Subsequently, Linux 2.4 added B<setfsgid32>() supporting 32-bit IDs. "
9259 "The glibc B<setfsgid>() wrapper function transparently deals with the "
9260 "variation across kernel versions."
9264 #: build/C/man2/setfsgid.2:110
9266 "No error messages of any kind are returned to the caller. At the very "
9267 "least, B<EPERM> should be returned when the call fails (because the caller "
9268 "lacks the B<CAP_SETGID> capability)."
9270 "いかなる種類のエラー・メッセージも返さない。 失敗した場合は (呼び出し元には "
9271 "B<CAP_SETGID> ケーパビリティがなかったのだから) 最低でも B<EPERM> くらいは返"
9275 #: build/C/man2/setfsgid.2:115
9276 msgid "B<kill>(2), B<setfsuid>(2), B<capabilities>(7), B<credentials>(7)"
9277 msgstr "B<kill>(2), B<setfsuid>(2), B<capabilities>(7), B<credentials>(7)"
9280 #: build/C/man2/setfsuid.2:29
9286 #: build/C/man2/setfsuid.2:32
9287 msgid "setfsuid - set user identity used for file system checks"
9289 "setfsuid - ファイル・システムのチェックに用いられるユーザ ID を設定する"
9292 #: build/C/man2/setfsuid.2:37
9293 msgid "B<int setfsuid(uid_t >I<fsuid>B<);>"
9294 msgstr "B<int setfsuid(uid_t >I<fsuid>B<);>"
9297 #: build/C/man2/setfsuid.2:49
9299 "The system call B<setfsuid>() sets the user ID that the Linux kernel uses "
9300 "to check for all accesses to the file system. Normally, the value of "
9301 "I<fsuid> will shadow the value of the effective user ID. In fact, whenever "
9302 "the effective user ID is changed, I<fsuid> will also be changed to the new "
9303 "value of the effective user ID."
9305 "B<setfsuid>() は Linux カーネルがファイル・システムに対する 全てのアクセスの"
9306 "チェックに使用するユーザID を設定する。通常は I<fsuid> の値は実効 "
9307 "(effective) ユーザID と同じになる。実際、 実効ユーザID が変更される度に "
9308 "I<fsuid> もまた新しい実効ユーザID の値に変更される。"
9311 #: build/C/man2/setfsuid.2:60
9313 "Explicit calls to B<setfsuid>() and B<setfsgid>(2) are usually only used "
9314 "by programs such as the Linux NFS server that need to change what user and "
9315 "group ID is used for file access without a corresponding change in the real "
9316 "and effective user and group IDs. A change in the normal user IDs for a "
9317 "program such as the NFS server is a security hole that can expose it to "
9318 "unwanted signals. (But see below.)"
9320 "通常、 B<setfsuid>() や B<setfsgid>() が明示的に呼び出されるのは、Linux "
9321 "NFS サーバー のように、 ファイル・アクセスに用いるユーザID / グループID を変"
9322 "更しなければならないが、 対応する実(real)/実効(effective) ユーザID / グループ"
9323 "ID は変更したくないような プログラムに限られる。 NFS サーバーのようなプログラ"
9324 "ムで、通常のユーザID を変更すると、 プロセスを望まないシグナルにさらす可能性"
9325 "があり、 セキュリティ・ホールになる。(下記参照)"
9328 #: build/C/man2/setfsuid.2:67
9330 "B<setfsuid>() will only succeed if the caller is the superuser or if "
9331 "I<fsuid> matches either the real user ID, effective user ID, saved set-user-"
9332 "ID, or the current value of I<fsuid>."
9334 "B<setfsuid>() は、スーパー・ユーザによって呼び出された場合か、 I<fsuid> が実"
9335 "ユーザID、実効ユーザID、 保存セットユーザID (saved set-user-ID)、現在の "
9336 "I<fsuid> の値のいずれかに一致する場合にのみ成功する。"
9339 #: build/C/man2/setfsuid.2:74
9341 "On success, the previous value of I<fsuid> is returned. On error, the "
9342 "current value of I<fsuid> is returned."
9344 "成功した場合、 I<fsuid> の以前の値を返す。エラーの場合は I<fsuid> の現在の値"
9348 #: build/C/man2/setfsuid.2:82
9350 "B<setfsuid>() is Linux-specific and should not be used in programs intended "
9353 "B<setfsuid>() は Linux 特有であり、移植を想定したプログラムで使用してはいけ"
9357 #: build/C/man2/setfsuid.2:88
9359 "When glibc determines that the argument is not a valid user ID, it will "
9360 "return -1 and set I<errno> to B<EINVAL> without attempting the system call."
9362 "glibc が引き数がユーザID として不正だと判断した場合は、 システム・コールを行"
9363 "わず I<errno> に B<EINVAL> を設定して -1 が返される。"
9366 #: build/C/man2/setfsuid.2:102
9368 "The original Linux B<setfsuid>() system call supported only 16-bit user "
9369 "IDs. Subsequently, Linux 2.4 added B<setfsuid32>() supporting 32-bit IDs. "
9370 "The glibc B<setfsuid>() wrapper function transparently deals with the "
9371 "variation across kernel versions."
9375 #: build/C/man2/setfsuid.2:110
9377 "No error messages of any kind are returned to the caller. At the very "
9378 "least, B<EPERM> should be returned when the call fails (because the caller "
9379 "lacks the B<CAP_SETUID> capability)."
9381 "いかなる種類のエラー・メッセージも呼び出し元に返さない。 失敗した場合は (呼び"
9382 "出し元には B<CAP_SETUID> ケーパビリティがなかったのだから) 最低でも B<EPERM> "
9386 #: build/C/man2/setfsuid.2:115
9387 msgid "B<kill>(2), B<setfsgid>(2), B<capabilities>(7), B<credentials>(7)"
9388 msgstr "B<kill>(2), B<setfsgid>(2), B<capabilities>(7), B<credentials>(7)"
9391 #: build/C/man2/setgid.2:27
9397 #: build/C/man2/setgid.2:30
9398 msgid "setgid - set group identity"
9399 msgstr "setgid - グループ識別(identity)を設定する"
9402 #: build/C/man2/setgid.2:36
9403 msgid "B<int setgid(gid_t >I<gid>B<);>"
9404 msgstr "B<int setgid(gid_t >I<gid>B<);>"
9407 #: build/C/man2/setgid.2:41
9409 "B<setgid>() sets the effective group ID of the calling process. If the "
9410 "caller is the superuser, the real GID and saved set-group-ID are also set."
9412 "B<setgid>() は呼び出し元のプロセスの実効 (effective) グループID を設定す"
9413 "る。 もしスーパー・ユーザーによって呼び出された場合は、 実 (real) グループID "
9414 "と保存 (saved) set-group-ID も設定される。"
9417 #: build/C/man2/setgid.2:51
9419 "Under Linux, B<setgid>() is implemented like the POSIX version with the "
9420 "B<_POSIX_SAVED_IDS> feature. This allows a set-group-ID program that is not "
9421 "set-user-ID-root to drop all of its group privileges, do some un-privileged "
9422 "work, and then reengage the original effective group ID in a secure manner."
9424 "Linux において、 B<setgid>() は B<_POSIX_SAVED_IDS> をもった POSIX 版のよう"
9425 "に実装されている。 これは set-user-ID-root でない set-group-ID プログラムにそ"
9426 "のグループの 特権の全て落とし、特権の必要ない仕事をし、本来の実効グループID "
9427 "に 安全な方法で再び戻すことを許す。"
9430 #: build/C/man2/setgid.2:64
9432 "The calling process is not privileged (does not have the B<CAP_SETGID> "
9433 "capability), and I<gid> does not match the real group ID or saved set-group-"
9434 "ID of the calling process."
9436 "呼び出し元のプロセスに権限がなく (B<CAP_SETGID> ケーパビリティがなく)、かつ "
9437 "I<gid> が呼び出し元のプロセスの実グループID と保存セットグループID のどちらと"
9441 #: build/C/man2/setgid.2:74
9443 "The original Linux B<setgid>() system call supported only 16-bit group "
9444 "IDs. Subsequently, Linux 2.4 added B<setgid32>() supporting 32-bit IDs. "
9445 "The glibc B<setgid>() wrapper function transparently deals with the "
9446 "variation across kernel versions."
9450 #: build/C/man2/setgid.2:82
9452 "B<getgid>(2), B<setegid>(2), B<setregid>(2), B<capabilities>(7), "
9455 "B<getgid>(2), B<setegid>(2), B<setregid>(2), B<capabilities>(7), "
9459 #: build/C/man2/setpgid.2:46
9465 #: build/C/man2/setpgid.2:49
9466 msgid "setpgid, getpgid, setpgrp, getpgrp - set/get process group"
9467 msgstr "setpgid, getpgid, setpgrp, getpgrp - プロセスグループの設定/取得を行う"
9470 #: build/C/man2/setpgid.2:53
9471 msgid "B<int setpgid(pid_t >I<pid>B<, pid_t >I<pgid>B<);>"
9472 msgstr "B<int setpgid(pid_t >I<pid>B<, pid_t >I<pgid>B<);>"
9475 #: build/C/man2/setpgid.2:55
9476 msgid "B<pid_t getpgid(pid_t >I<pid>B<);>"
9477 msgstr "B<pid_t getpgid(pid_t >I<pid>B<);>"
9480 #: build/C/man2/setpgid.2:57
9481 msgid "B<pid_t getpgrp(void);> /* POSIX.1 version */"
9482 msgstr "B<pid_t getpgrp(void);> /* POSIX.1 version */"
9485 #: build/C/man2/setpgid.2:60
9487 "B<pid_t getpgrp(pid_t >I<pid>B<);\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ > /* BSD "
9490 "B<pid_t getpgrp(pid_t >I<pid>B<);\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ > /* BSD "
9494 #: build/C/man2/setpgid.2:62
9495 msgid "B<int setpgrp(void);> /* System V version */"
9496 msgstr "B<int setpgrp(void);> /* System V version */"
9499 #: build/C/man2/setpgid.2:65
9500 msgid "B<int setpgrp(pid_t >I<pid>B<, pid_t >I<pgid>B<);\\ > /* BSD version */"
9502 "B<int setpgrp(pid_t >I<pid>B<, pid_t >I<pgid>B<);\\ > /* BSD version */"
9505 #: build/C/man2/setpgid.2:74
9506 msgid "B<getpgid>():"
9507 msgstr "B<getpgid>():"
9510 #: build/C/man2/setpgid.2:82
9511 msgid "B<setpgrp>() (POSIX.1):"
9512 msgstr "B<setpgrp>() (POSIX.1):"
9515 #: build/C/man2/setpgid.2:85
9518 " _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
9519 " _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED\n"
9521 " _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
9522 " _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED\n"
9525 #: build/C/man2/setpgid.2:89
9526 msgid "B<setpgrp>()\\ (BSD), B<getpgrp>()\\ (BSD):"
9527 msgstr "B<setpgrp>()\\ (BSD), B<getpgrp>()\\ (BSD):"
9530 #: build/C/man2/setpgid.2:93
9534 " !\\ (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE ||\n"
9535 " _XOPEN_SOURCE_EXTENDED || _GNU_SOURCE || _SVID_SOURCE)\n"
9538 " !\\ (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE ||\n"
9539 " _XOPEN_SOURCE_EXTENDED || _GNU_SOURCE || _SVID_SOURCE)\n"
9542 #: build/C/man2/setpgid.2:105
9544 "All of these interfaces are available on Linux, and are used for getting and "
9545 "setting the process group ID (PGID) of a process. The preferred, POSIX.1-"
9546 "specified ways of doing this are: B<getpgrp>(void), for retrieving the "
9547 "calling process's PGID; and B<setpgid>(), for setting a process's PGID."
9549 "これらのインタフェースすべてが Linux で利用可能で、 これらを使ってプロセスの"
9550 "プロセスグループ ID (PGID) の 取得や設定ができる。 推奨の、POSIX.1 で規定され"
9551 "た方法では、 B<getpgrp>(void) で呼び出し元プロセスの PGID を取得し、 "
9552 "B<setpgid>() で設定する。"
9555 #: build/C/man2/setpgid.2:130
9557 "B<setpgid>() sets the PGID of the process specified by I<pid> to I<pgid>. "
9558 "If I<pid> is zero, then the process ID of the calling process is used. If "
9559 "I<pgid> is zero, then the PGID of the process specified by I<pid> is made "
9560 "the same as its process ID. If B<setpgid>() is used to move a process from "
9561 "one process group to another (as is done by some shells when creating "
9562 "pipelines), both process groups must be part of the same session (see "
9563 "B<setsid>(2) and B<credentials>(7)). In this case, the I<pgid> specifies "
9564 "an existing process group to be joined and the session ID of that group must "
9565 "match the session ID of the joining process."
9567 "B<setpgid>() は I<pid> で指定したプロセスの PGID に I<pgid> を設定する。 "
9568 "I<pid> がゼロならば、呼び出し元プロセスのプロセス ID が pid として使用され"
9569 "る。 I<pgid> がゼロならば、 I<pid> で指定されたプロセスの PGID がそのプロセス"
9570 "のプロセス ID と 同じに設定される。 B<setpgid>() をプロセスをあるプロセスグ"
9571 "ループから別のグループへ 移動するために使用する場合は (一部のシェルはパイプラ"
9572 "インを生成 する時にこれを行う)、両方のプロセスグループは同じセッションの 一部"
9573 "でなければならない (B<setsid>(2) と B<credentials>(7) 参照)。この場合は "
9574 "I<pgid> は参加すべき既存の プロセスグループを指定し、そのセッション ID は参加"
9575 "するプロセスの セッション ID に一致しなければならない。"
9578 #: build/C/man2/setpgid.2:135
9580 "The POSIX.1 version of B<getpgrp>(), which takes no arguments, returns the "
9581 "PGID of the calling process."
9583 "POSIX.1 バージョンの B<getpgrp>() は引き数を一つもとらず、 呼び出し元プロセ"
9587 #: build/C/man2/setpgid.2:146
9589 "B<getpgid>() returns the PGID of the process specified by I<pid>. If "
9590 "I<pid> is zero, the process ID of the calling process is used. (Retrieving "
9591 "the PGID of a process other than the caller is rarely necessary, and the "
9592 "POSIX.1 B<getpgrp>() is preferred for that task.)"
9594 "B<getpgid>() は I<pid> で指定されたプロセスの PGID を返す。 I<pid> がゼロな"
9595 "らば、呼び出し元プロセスのプロセス ID が pid として使用される。 (呼び出し元プ"
9596 "ロセス以外のプロセスの PGID の取得が必要になることは めったになく、呼び出し元"
9597 "プロセスの PGID を取得するには POSIX.1 バージョンの B<getpgrp>() を使うのが"
9601 #: build/C/man2/setpgid.2:151
9603 "The System V-style B<setpgrp>(), which takes no arguments, is equivalent to "
9604 "I<setpgid(0,\\ 0)>."
9606 "System V バージョンの B<setpgrp>() は引き数を一つもとらず、 I<setpgid(0,\\ "
9609 #. The true BSD setpgrp() system call differs in allowing the PGID
9610 #. to be set to arbitrary values, rather than being restricted to
9611 #. PGIDs in the same session.
9613 #: build/C/man2/setpgid.2:163
9615 "The BSD-specific B<setpgrp>() call, which takes arguments I<pid> and "
9616 "I<pgid>, is equivalent to I<setpgid(pid, pgid)>."
9618 "BSD 仕様の B<setpgrp>() は I<pid> と I<pgid> を引き数にとり、 I<setpgid"
9619 "(pid, pgid)> と等価である。"
9622 #: build/C/man2/setpgid.2:170
9624 "The BSD-specific B<getpgrp>() call, which takes a single I<pid> argument, "
9625 "is equivalent to I<getpgid(pid)>."
9627 "BSD 仕様の B<getpgrp>() は I<pid> だけを引き数にとり、 I<getpgid(pid)> と等"
9631 #: build/C/man2/setpgid.2:179
9633 "On success, B<setpgid>() and B<setpgrp>() return zero. On error, -1 is "
9634 "returned, and I<errno> is set appropriately."
9636 "B<setpgid>() と B<setpgrp>() は成功した場合、ゼロを返す。エラーの場合は -1 "
9637 "を返し、 I<errno> が適切に設定される。"
9640 #: build/C/man2/setpgid.2:183
9641 msgid "The POSIX.1 B<getpgrp>() always returns the PGID of the caller."
9643 "POSIX.1 バージョンの B<getpgrp>() は常に呼び出しプロセスの PGID を返す。"
9646 #: build/C/man2/setpgid.2:191
9648 "B<getpgid>(), and the BSD-specific B<getpgrp>() return a process group on "
9649 "success. On error, -1 is returned, and I<errno> is set appropriately."
9651 "B<getpgid>() と BSD 仕様の B<getpgrp>() は成功した場合プロセスグループを返"
9652 "す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。"
9655 #: build/C/man2/setpgid.2:200
9657 "An attempt was made to change the process group ID of one of the children of "
9658 "the calling process and the child had already performed an B<execve>(2) "
9659 "(B<setpgid>(), B<setpgrp>())."
9661 "呼び出し元プロセスの子プロセスのプロセスグループ ID を変更しようとしたが、 す"
9662 "でにその子プロセスは B<execve>(2) を実行していた。 (B<setpgid>(), B<setpgrp>"
9666 #: build/C/man2/setpgid.2:206
9667 msgid "I<pgid> is less than 0 (B<setpgid>(), B<setpgrp>())."
9668 msgstr "I<pgid> が 0 より小さい。 (B<setpgid>(), B<setpgrp>())"
9671 #: build/C/man2/setpgid.2:215
9673 "An attempt was made to move a process into a process group in a different "
9674 "session, or to change the process group ID of one of the children of the "
9675 "calling process and the child was in a different session, or to change the "
9676 "process group ID of a session leader (B<setpgid>(), B<setpgrp>())."
9678 "プロセスを異なるセッションのプロセスグループに移動させようとした。 または呼び"
9679 "出し元プロセスの子プロセスのプロセスグループ ID を変更しようと したが、その子"
9680 "プロセスは別のセッションだった。 またはセッションリーダーのプロセスグループ "
9681 "ID を変更しようとした。 (B<setpgid>(), B<setpgrp>())"
9684 #: build/C/man2/setpgid.2:225
9686 "For B<getpgid>(): I<pid> does not match any process. For B<setpgid>(): "
9687 "I<pid> is not the calling process and not a child of the calling process."
9689 "B<getpgid>() の場合: I<pid> がどのプロセスにも一致しない。 B<setpgid>() の"
9690 "場合: I<pid> が呼び出し元のプロセスではなく、呼び出し元のプロセスの子プロセス"
9694 #: build/C/man2/setpgid.2:231
9696 "B<setpgid>() and the version of B<getpgrp>() with no arguments conform to "
9699 "B<setpgid>() と、引き数なしバージョンの B<getpgrp>() は POSIX.1-2001 に準拠"
9703 #: build/C/man2/setpgid.2:240
9705 "POSIX.1-2001 also specifies B<getpgid>() and the version of B<setpgrp>() "
9706 "that takes no arguments. (POSIX.1-2008 marks this B<setpgrp>() "
9707 "specification as obsolete.)"
9709 "POSIX.1-2001 は、 B<getpgid>() と、引き数なしバージョンの B<setpgrp>() も規"
9710 "定している。 POSIX.1-2008 は、この B<setpgrp>() の仕様を廃止予定としている。"
9713 #: build/C/man2/setpgid.2:247
9715 "The version of B<getpgrp>() with one argument and the version of B<setpgrp>"
9716 "() that takes two arguments derive from 4.2BSD, and are not specified by "
9719 "引き数 1 個バージョンの B<getpgrp>() と引き数 2 個バージョンの B<setpgrp>"
9720 "() は 4.2BSD に由来し、 POSIX.1 では規定されていない。"
9723 #: build/C/man2/setpgid.2:253
9725 "A child created via B<fork>(2) inherits its parent's process group ID. The "
9726 "PGID is preserved across an B<execve>(2)."
9728 "B<fork>(2) で作成された子プロセスは、親プロセスの PGID を継承する。 "
9729 "B<execve>(2) の前後で PGID は保存される。"
9732 #: build/C/man2/setpgid.2:256
9734 "Each process group is a member of a session and each process is a member of "
9735 "the session of which its process group is a member."
9737 "各プロセスグループはセッションのメンバーであり、各プロセスは そのプロセスグ"
9738 "ループが所属しているセッションのメンバーである。"
9741 #: build/C/man2/setpgid.2:283
9743 "A session can have a controlling terminal. At any time, one (and only one) "
9744 "of the process groups in the session can be the foreground process group for "
9745 "the terminal; the remaining process groups are in the background. If a "
9746 "signal is generated from the terminal (e.g., typing the interrupt key to "
9747 "generate B<SIGINT>), that signal is sent to the foreground process group. "
9748 "(See B<termios>(3) for a description of the characters that generate "
9749 "signals.) Only the foreground process group may B<read>(2) from the "
9750 "terminal; if a background process group tries to B<read>(2) from the "
9751 "terminal, then the group is sent a B<SIGTSTP> signal, which suspends it. "
9752 "The B<tcgetpgrp>(3) and B<tcsetpgrp>(3) functions are used to get/set the "
9753 "foreground process group of the controlling terminal."
9755 "セッションは制御端末 (controlling terminal) を持つことができる。 いつでも、"
9756 "セッションに所属するプロセスグループの一つ (だけ) が 端末のフォアグランドのプ"
9757 "ロセスグループになることができ、 残りのプロセスグループはバックグラウンドにな"
9758 "る。 端末からシグナルが生成された場合 (例えば、中断キーを叩いて B<SIGINT> が"
9759 "生成されるなど)、そのシグナルはフォアグラウンドのプロセスグループ に送られる "
9760 "(シグナルを生成する文字の説明は B<termios>(3) を参照)。 フォアグラウンドのプ"
9761 "ロセスグループだけが端末からの B<read>(2) ができる。 バックグラウンドのプロ"
9762 "セスグループが端末からの B<read>(2) を行おうとした場合、そのプロセスグループ"
9763 "にはシグナル B<SIGTSTP> が送られ、そのプロセスグループは一時停止 (suspend) す"
9764 "る。 関数 B<tcgetpgrp>(3) と B<tcsetpgrp>(3) を使うと、制御端末のフォアグラ"
9765 "ウンドのプロセスグループを 取得/設定できる。"
9768 #: build/C/man2/setpgid.2:291
9770 "The B<setpgid>() and B<getpgrp>() calls are used by programs such as "
9771 "B<bash>(1) to create process groups in order to implement shell job control."
9773 "B<setpgid>() と B<getpgrp>() は、 B<bash>(1) のようなプログラムで、シェル"
9774 "のジョブ制御 (job control) の実装のための プロセスグループを作成するのに使わ"
9778 #: build/C/man2/setpgid.2:301
9780 "If a session has a controlling terminal, and the B<CLOCAL> flag for that "
9781 "terminal is not set, and a terminal hangup occurs, then the session leader "
9782 "is sent a B<SIGHUP>. If the session leader exits, then a B<SIGHUP> signal "
9783 "will also be sent to each process in the foreground process group of the "
9784 "controlling terminal."
9786 "セッションが制御端末を持っていて、その端末に対して B<CLOCAL> フラグが設定され"
9787 "ておらず、端末のハングアップが起きた場合、 セッション・リーダーに B<SIGHUP> "
9788 "が送られる。 セッション・リーダーが終了した場合には、その制御端末の フォアグ"
9789 "ランドのプロセスグループに所属する各プロセスにも B<SIGHUP> シグナルが送られ"
9792 #. exit.3 refers to the following text:
9794 #: build/C/man2/setpgid.2:315
9796 "If the exit of the process causes a process group to become orphaned, and if "
9797 "any member of the newly orphaned process group is stopped, then a B<SIGHUP> "
9798 "signal followed by a B<SIGCONT> signal will be sent to each process in the "
9799 "newly orphaned process group. An orphaned process group is one in which the "
9800 "parent of every member of process group is either itself also a member of "
9801 "the process group or is a member of a process group in a different session "
9802 "(see also B<credentials>(7))."
9804 "プロセスの終了によってプロセスグループが孤児 (orphaned) になった際に、 その新"
9805 "たに孤児になったプロセスグループに停止しているメンバーがいれば、 その孤児に"
9806 "なったプロセスグループに属す全てのプロセスに B<SIGHUP> シグナルに続けて "
9807 "B<SIGCONT> シグナルが送られる。 孤児になった (orphaned) プロセスグループと"
9808 "は、 そのプロセスグループの全てのメンバーについて、メンバーの親プロセスが、 "
9809 "親プロセス自身もそのプロセスグループのメンバーか、 別のセッションに属すプロセ"
9810 "スグループのメンバーのいずれかであるような、 プロセスグループのことである。"
9813 #: build/C/man2/setpgid.2:322
9815 "B<getuid>(2), B<setsid>(2), B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<termios>(3), "
9818 "B<getuid>(2), B<setsid>(2), B<tcgetpgrp>(3), B<tcsetpgrp>(3), B<termios>(3), "
9822 #: build/C/man2/setresuid.2:26
9828 #: build/C/man2/setresuid.2:29
9829 msgid "setresuid, setresgid - set real, effective and saved user or group ID"
9830 msgstr "setresuid, setresgid - ユーザやグループの 実、実効、保存 ID を設定する"
9833 #: build/C/man2/setresuid.2:35
9834 msgid "B<int setresuid(uid_t >I<ruid>B<, uid_t >I<euid>B<, uid_t >I<suid>B<);>"
9836 "B<int setresuid(uid_t >I<ruid>B<, uid_t >I<euid>B<, uid_t >I<suid>B<);>"
9839 #: build/C/man2/setresuid.2:37
9840 msgid "B<int setresgid(gid_t >I<rgid>B<, gid_t >I<egid>B<, gid_t >I<sgid>B<);>"
9842 "B<int setresgid(gid_t >I<rgid>B<, gid_t >I<egid>B<, gid_t >I<sgid>B<);>"
9845 #: build/C/man2/setresuid.2:41
9847 "B<setresuid>() sets the real user ID, the effective user ID, and the saved "
9848 "set-user-ID of the calling process."
9850 "B<setresuid>() は呼び出し元のプロセスの実 (real) ユーザーID、実効 "
9851 "(effective) ユーザーID、 保存 set-user-ID を設定する。"
9854 #: build/C/man2/setresuid.2:47
9856 "Unprivileged user processes may change the real UID, effective UID, and "
9857 "saved set-user-ID, each to one of: the current real UID, the current "
9858 "effective UID or the current saved set-user-ID."
9860 "非特権ユーザーのプロセスは、その実 UID、実効 UID、保存 set-user-ID を、 現在"
9861 "の実 UID、現在の実効 UID、現在の保存 set-user-ID のどれかに変更することができ"
9865 #: build/C/man2/setresuid.2:51
9867 "Privileged processes (on Linux, those having the B<CAP_SETUID> capability) "
9868 "may set the real UID, effective UID, and saved set-user-ID to arbitrary "
9871 "特権プロセス (Linux では B<CAP_SETUID> ケーパビリティ (capability) を持つ プ"
9872 "ロセス) は、実 UID、実効 UID、保存 set-user-ID を任意の値に設定できる。"
9875 #: build/C/man2/setresuid.2:53
9877 "If one of the arguments equals -1, the corresponding value is not changed."
9878 msgstr "引き数のどれかが -1 の場合はその値は変更されずに残される。"
9881 #: build/C/man2/setresuid.2:57
9883 "Regardless of what changes are made to the real UID, effective UID, and "
9884 "saved set-user-ID, the file system UID is always set to the same value as "
9885 "the (possibly new) effective UID."
9887 "実 UID、実効 UID、保存 set-user-ID にどんな変更が行われたかに関わらず、 ファ"
9888 "イルシステム UID は常に実効 UID (可能であれば変更後の新しい実効 UID) と同じ"
9892 #: build/C/man2/setresuid.2:64
9894 "Completely analogously, B<setresgid>() sets the real GID, effective GID, "
9895 "and saved set-group-ID of the calling process (and always modifies the file "
9896 "system GID to be the same as the effective GID), with the same restrictions "
9897 "for unprivileged processes."
9899 "全く同じように、 B<setresgid>() は呼び出し元のプロセスの実 GID、実効 GID、保"
9900 "存 set-group-ID を設定する (さらにファイルシステム GID を実効 GID と同じ値に"
9901 "修正する)。 非特権プロセスは同様の制限を受ける。"
9904 #: build/C/man2/setresuid.2:70 build/C/man2/setuid.2:74
9910 #: build/C/man2/setresuid.2:77
9912 "I<uid> does not match the current UID and this call would bring that user ID "
9913 "over its B<RLIMIT_NPROC> resource limit."
9915 "I<uid> が現在のユーザー ID と違う値で、 この呼び出しにより ユーザー ID が リ"
9916 "ソース上限 B<RLIMIT_NPROC> を超えてしまう。"
9919 #: build/C/man2/setresuid.2:81
9921 "The calling process is not privileged (did not have the B<CAP_SETUID> "
9922 "capability) and tried to change the IDs to values that are not permitted."
9924 "呼び出したプロセスが特権を持たないのに (B<CAP_SETUID> ケーパビリティを持たな"
9925 "いのに)、 ID を許されていない値に変更しようとした。"
9928 #: build/C/man2/setresuid.2:83
9929 msgid "These calls are available under Linux since Linux 2.1.44."
9930 msgstr "Linux ではバージョン 2.1.44 より利用可能になった。"
9933 #: build/C/man2/setresuid.2:90
9936 #| "Under HP-UX and FreeBSD the prototype is found in I<E<lt>unistd.hE<gt>>. "
9937 #| "Under Linux the prototype is provided by glibc since version 2.3.2."
9939 "Under HP-UX and FreeBSD, the prototype is found in I<E<lt>unistd.hE<gt>>. "
9940 "Under Linux the prototype is provided by glibc since version 2.3.2."
9942 "HP-UX や FreeBSD では I<E<lt>unistd.hE<gt>> にプロトタイプが存在する。 Linux "
9943 "では、glibc 2.3.2 以降で プロトタイプが提供されている。"
9946 #: build/C/man2/setresuid.2:106
9948 "The original Linux B<setresuid>() and B<setresgid>() system calls "
9949 "supported only 16-bit user and group IDs. Subsequently, Linux 2.4 added "
9950 "B<setresuid32>() and B<setresgid32>(), supporting 32-bit IDs. The glibc "
9951 "B<setresuid>() and B<setresgid>() wrapper functions transparently deal "
9952 "with the variations across kernel versions."
9956 #: build/C/man2/setresuid.2:115
9958 "B<getresuid>(2), B<getuid>(2), B<setfsgid>(2), B<setfsuid>(2), B<setreuid>"
9959 "(2), B<setuid>(2), B<capabilities>(7), B<credentials>(7)"
9961 "B<getresuid>(2), B<getuid>(2), B<setfsgid>(2), B<setfsuid>(2), B<setreuid>"
9962 "(2), B<setuid>(2), B<capabilities>(7), B<credentials>(7)"
9965 #: build/C/man2/setreuid.2:43
9971 #: build/C/man2/setreuid.2:46
9972 msgid "setreuid, setregid - set real and/or effective user or group ID"
9974 "setreuid, setregid - 実 (real) と実効 (effective) ユーザー (グループ) ID を設"
9978 #: build/C/man2/setreuid.2:52
9979 msgid "B<int setreuid(uid_t >I<ruid>B<, uid_t >I<euid>B<);>"
9980 msgstr "B<int setreuid(uid_t >I<ruid>B<, uid_t >I<euid>B<);>"
9983 #: build/C/man2/setreuid.2:54
9984 msgid "B<int setregid(gid_t >I<rgid>B<, gid_t >I<egid>B<);>"
9985 msgstr "B<int setregid(gid_t >I<rgid>B<, gid_t >I<egid>B<);>"
9988 #: build/C/man2/setreuid.2:62
9989 msgid "B<setreuid>(), B<setregid>():"
9990 msgstr "B<setreuid>(), B<setregid>():"
9993 #: build/C/man2/setreuid.2:66
9995 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
9996 "_XOPEN_SOURCE_EXTENDED"
9998 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
9999 "_XOPEN_SOURCE_EXTENDED"
10001 #. type: Plain text
10002 #: build/C/man2/setreuid.2:71
10003 msgid "B<setreuid>() sets real and effective user IDs of the calling process."
10005 "B<setreuid>() は呼び出し元のプロセスの実 (real) ユーザー ID と 実効 "
10006 "(effective) ユーザー ID を設定する。"
10008 #. type: Plain text
10009 #: build/C/man2/setreuid.2:74
10011 "Supplying a value of -1 for either the real or effective user ID forces the "
10012 "system to leave that ID unchanged."
10014 "実ユーザー ID や実効ユーザー ID に -1 を与えた場合、 システムはその ID を変更"
10017 #. type: Plain text
10018 #: build/C/man2/setreuid.2:77
10020 "Unprivileged processes may only set the effective user ID to the real user "
10021 "ID, the effective user ID, or the saved set-user-ID."
10023 "非特権プロセスは実効ユーザー ID を実ユーザー ID または実効ユーザー ID または "
10024 "保存 set-user-ID にしか設定できない。"
10026 #. type: Plain text
10027 #: build/C/man2/setreuid.2:80
10029 "Unprivileged users may only set the real user ID to the real user ID or the "
10030 "effective user ID."
10032 "非特権ユーザーは、実ユーザー ID を実ユーザー ID または 実効ユーザー ID にしか"
10035 #. type: Plain text
10036 #: build/C/man2/setreuid.2:84
10038 "If the real user ID is set or the effective user ID is set to a value not "
10039 "equal to the previous real user ID, the saved set-user-ID will be set to the "
10040 "new effective user ID."
10042 "実ユーザーID が設定されたり、実効ユーザーID が前の実ユーザーID と 異った値に"
10043 "設定された場合、保存 set-user-ID には新しい実効ユーザーID の値が設定される。"
10045 #. type: Plain text
10046 #: build/C/man2/setreuid.2:89
10048 "Completely analogously, B<setregid>() sets real and effective group ID's of "
10049 "the calling process, and all of the above holds with \"group\" instead of "
10052 "これと全く同様に、 B<setregid>() は呼び出し元のプロセスの実グループ ID と実"
10053 "効グループ ID を設定し、 上記の説明で「ユーザー」を「グループ」に読み替えたこ"
10056 #. type: Plain text
10057 #: build/C/man2/setreuid.2:111
10059 "The calling process is not privileged (Linux: does not have the "
10060 "B<CAP_SETUID> capability in the case of B<setreuid>(), or the B<CAP_SETGID> "
10061 "capability in the case of B<setregid>()) and a change other than (i) "
10062 "swapping the effective user (group) ID with the real user (group) ID, or "
10063 "(ii) setting one to the value of the other or (iii) setting the effective "
10064 "user (group) ID to the value of the saved set-user-ID (saved set-group-ID) "
10067 "呼び出し元のプロセスに特権がなく (Linux では B<setreuid>() の場合に "
10068 "B<CAP_SETUID> ケーパビリティ (capability) がなく、 B<setregid>() の場合に "
10069 "B<CAP_SETGID> ケーパビリティがない)、 以下のいずれでもない変更が指定された: "
10070 "(i) 実効ユーザー (グループ) ID と実ユーザー (グループ) ID を入れ換える。 "
10071 "(ii) 片方の値を他方に設定する。 (iii) 実効ユーザー (グループ) ID に保存 set-"
10072 "user-ID (保存 set-group-ID) の値を設定する。"
10074 #. type: Plain text
10075 #: build/C/man2/setreuid.2:117
10077 "POSIX.1-2001, 4.3BSD (the B<setreuid>() and B<setregid>() function calls "
10078 "first appeared in 4.2BSD)."
10080 "POSIX.1-2001, 4.3BSD (B<setreuid>() と B<setregid>() 関数コールは 4.2BSD で"
10083 #. type: Plain text
10084 #: build/C/man2/setreuid.2:121
10086 "Setting the effective user (group) ID to the saved set-user-ID (saved set-"
10087 "group-ID) is possible since Linux 1.1.37 (1.1.38)."
10089 "実効ユーザー (グループ) ID を保存ユーザー (グループ) ID に 設定することが、"
10090 "Linux 1.1.37 (1.1.38) から可能になった。"
10092 #. type: Plain text
10093 #: build/C/man2/setreuid.2:138
10095 "POSIX.1 does not specify all of possible ID changes that are permitted on "
10096 "Linux for an unprivileged process. For B<setreuid>(), the effective user ID "
10097 "can be made the same as the real user ID or the save set-user-ID, and it is "
10098 "unspecified whether unprivileged processes may set the real user ID to the "
10099 "real user ID, the effective user ID, or the saved set-user-ID. For "
10100 "B<setregid>(), the real group ID can be changed to the value of the saved "
10101 "set-group-ID, and the effective group ID can be changed to the value of the "
10102 "real group ID or the saved set-group-ID. The precise details of what ID "
10103 "changes are permitted vary across implementations."
10105 "POSIX.1 では、非特権プロセスに対して Linux 上で認められている ID の変更の 全"
10106 "パターンを規定しているわけではない。 B<setreuid>() では、実効ユーザ ID を実"
10107 "ユーザ ID もしくは保存 set-user-ID と 同じ値にすることができるが、 非特権プロ"
10108 "セスが実ユーザ ID を実ユーザ ID、実効ユーザ ID、 保存 set-user-ID のどの値に"
10109 "も設定できるかは規定されていない。 B<setregid>() では、実グループ ID を保存 "
10110 "set-group-ID と同じ値に変更でき、 実効グループ ID を実グループ ID や保存 set-"
10111 "group-ID と同じ値に変更できる。 どのような ID の変更が認められているかの正確"
10114 #. type: Plain text
10115 #: build/C/man2/setreuid.2:141
10117 "POSIX.1 makes no specification about the effect of these calls on the saved "
10118 "set-user-ID and saved set-group-ID."
10120 "POSIX.1 では、これらのシステムコールが保存 set-user-ID や 保存 set-group-ID "
10121 "に与える影響については規定していない。"
10123 #. type: Plain text
10124 #: build/C/man2/setreuid.2:157
10126 "The original Linux B<setreuid>() and B<setregid>() system calls supported "
10127 "only 16-bit user and group IDs. Subsequently, Linux 2.4 added B<setreuid32>"
10128 "() and B<setregid32>(), supporting 32-bit IDs. The glibc B<setreuid>() "
10129 "and B<setregid>() wrapper functions transparently deal with the variations "
10130 "across kernel versions."
10133 #. type: Plain text
10134 #: build/C/man2/setreuid.2:165
10136 "B<getgid>(2), B<getuid>(2), B<seteuid>(2), B<setgid>(2), B<setresuid>(2), "
10137 "B<setuid>(2), B<capabilities>(7)"
10139 "B<getgid>(2), B<getuid>(2), B<seteuid>(2), B<setgid>(2), B<setresuid>(2), "
10140 "B<setuid>(2), B<capabilities>(7)"
10143 #: build/C/man2/setsid.2:29
10149 #: build/C/man2/setsid.2:29
10152 msgstr "2008-12-03"
10154 #. type: Plain text
10155 #: build/C/man2/setsid.2:32
10156 msgid "setsid - creates a session and sets the process group ID"
10158 "setsid - セッション (session) を作成し、プロセス・グループ ID を設定する"
10160 #. type: Plain text
10161 #: build/C/man2/setsid.2:37
10162 msgid "B<pid_t setsid(void);>"
10163 msgstr "B<pid_t setsid(void);>"
10165 #. type: Plain text
10166 #: build/C/man2/setsid.2:50
10168 "B<setsid>() creates a new session if the calling process is not a process "
10169 "group leader. The calling process is the leader of the new session, the "
10170 "process group leader of the new process group, and has no controlling tty. "
10171 "The process group ID and session ID of the calling process are set to the "
10172 "PID of the calling process. The calling process will be the only process in "
10173 "this new process group and in this new session."
10175 "B<setsid>() は呼び出したプロセスがプロセス・グループ・リーダー (process "
10176 "group leader) でなければ、新しいセッションを作成する。 呼び出したプロセスは新"
10177 "しいセッションのリーダー、新しいプロセス・グループの プロセス・グループ・リー"
10178 "ダーとなり、tty の制御を持たない。 呼び出したプロセスのプロセス・グループ ID "
10179 "とセッション ID には、 呼び出したプロセスの PID が設定される。呼び出したプロ"
10180 "セスはこの 新しいプロセス・グループ、この新しいセッションの唯一のプロセスとな"
10183 #. type: Plain text
10184 #: build/C/man2/setsid.2:57
10186 "On success, the (new) session ID of the calling process is returned. On "
10187 "error, I<(pid_t)\\ -1> is returned, and I<errno> is set to indicate the "
10190 "成功すると、呼び出したプロセスの (新しい) セッション ID が返される。 エラーの"
10191 "場合は、 I<(pid_t)\\ -1> が返され、 I<error> にエラーを示す値が設定される。"
10193 #. type: Plain text
10194 #: build/C/man2/setsid.2:64
10196 "The process group ID of any process equals the PID of the calling process. "
10197 "Thus, in particular, B<setsid>() fails if the calling process is already a "
10198 "process group leader."
10200 "いずれかのプロセスのプロセス・グループ ID が、 呼び出したプロセスの PID と等"
10201 "しい。 これは、呼び出したプロセスが既にプロセス・リーダーの場合には B<setsid>"
10204 #. type: Plain text
10205 #: build/C/man2/setsid.2:72
10207 "A child created via B<fork>(2) inherits its parent's session ID. The "
10208 "session ID is preserved across an B<execve>(2)."
10210 "B<fork>(2) で作成された子プロセスは、親プロセスのセッション ID を継承する。 "
10211 "B<execve>(2) の前後でセッション ID は保存される。"
10213 #. type: Plain text
10214 #: build/C/man2/setsid.2:83
10216 "A process group leader is a process with process group ID equal to its PID. "
10217 "In order to be sure that B<setsid>() will succeed, B<fork>(2) and B<_exit>"
10218 "(2), and have the child do B<setsid>()."
10220 "プロセス・グループ・リーダーとは、そのプロセスのプロセス・グループ ID が そ"
10221 "の PID に等しいプロセスである。 B<setsid>() を確実に成功させるためには、 "
10222 "B<fork>(2) して B<exit>(2) し、子プロセスで B<setsid>() を行なえば良い。"
10224 #. type: Plain text
10225 #: build/C/man2/setsid.2:89
10227 "B<getsid>(2), B<setpgid>(2), B<setpgrp>(2), B<tcgetsid>(3), B<credentials>(7)"
10229 "B<getsid>(2), B<setpgid>(2), B<setpgrp>(2), B<tcgetsid>(3), B<credentials>(7)"
10232 #: build/C/man2/setuid.2:28
10237 #. type: Plain text
10238 #: build/C/man2/setuid.2:31
10239 msgid "setuid - set user identity"
10240 msgstr "setuid - ユーザー識別 (identity) を設定する"
10242 #. type: Plain text
10243 #: build/C/man2/setuid.2:37
10244 msgid "B<int setuid(uid_t >I<uid>B<);>"
10245 msgstr "B<int setuid(uid_t >I<uid>B<);>"
10247 #. type: Plain text
10248 #: build/C/man2/setuid.2:42
10250 "B<setuid>() sets the effective user ID of the calling process. If the "
10251 "effective UID of the caller is root, the real UID and saved set-user-ID are "
10254 "B<setuid>() は呼び出し元のプロセスの実効 (effective) ユーザー ID を設定す"
10255 "る。 もし呼び出し元プロセスの実効 UID が root ならば、 実 (real) UID と保存 "
10256 "(saved) set-user-ID も設定される。"
10258 #. type: Plain text
10259 #: build/C/man2/setuid.2:51
10261 "Under Linux, B<setuid>() is implemented like the POSIX version with the "
10262 "B<_POSIX_SAVED_IDS> feature. This allows a set-user-ID (other than root) "
10263 "program to drop all of its user privileges, do some un-privileged work, and "
10264 "then reengage the original effective user ID in a secure manner."
10266 "Linux では、 B<setuid>() は B<_POSIX_SAVED_IDS> をもった POSIX 版のように実"
10267 "装されている。 これは (ルート以外の) set-user-ID プログラムにそのユーザーの特"
10268 "権を 全て与え、特権の必要ない仕事をし、本来の実効ユーザー ID に 安全な方法で"
10271 #. type: Plain text
10272 #: build/C/man2/setuid.2:61
10274 "If the user is root or the program is set-user-ID-root, special care must be "
10275 "taken. The B<setuid>() function checks the effective user ID of the caller "
10276 "and if it is the superuser, all process-related user ID's are set to "
10277 "I<uid>. After this has occurred, it is impossible for the program to regain "
10280 "ユーザーが root またはプログラムが root に set-user-ID されているならば、 特"
10281 "別の注意が払われる。 B<setuid>() 関数は呼び出し者の実効ユーザー ID をチェッ"
10282 "クし、 それがスーパー・ユーザーならば、 プロセスに関連する全てのユーザー ID "
10283 "に I<uid> を設定する。 これが行なわれた後にはプログラムが再びルートの特権を得"
10286 #. type: Plain text
10287 #: build/C/man2/setuid.2:68
10289 "Thus, a set-user-ID-root program wishing to temporarily drop root "
10290 "privileges, assume the identity of an unprivileged user, and then regain "
10291 "root privileges afterward cannot use B<setuid>(). You can accomplish this "
10292 "with B<seteuid>(2)."
10294 "したがって、set-user-ID-root プログラムで、一時的にルート特権を解除し、 非特"
10295 "権ユーザであるかのように振舞い、後でルート権限をもう一度得ようと する場合に"
10296 "は、 B<setuid>() を使うことができない。その場合には、 B<seteuid>(2) を使う"
10299 #. type: Plain text
10300 #: build/C/man2/setuid.2:83
10302 "The I<uid> does not match the current uid and I<uid> brings process over its "
10303 "B<RLIMIT_NPROC> resource limit."
10305 "I<uid> が現在のユーザー ID とマッチせず、この I<uid> によってプロセスがリソー"
10306 "ス上限 B<RLIMIT_NPROC> を超えた。"
10308 #. type: Plain text
10309 #: build/C/man2/setuid.2:90
10311 "The user is not privileged (Linux: does not have the B<CAP_SETUID> "
10312 "capability) and I<uid> does not match the real UID or saved set-user-ID of "
10313 "the calling process."
10315 "ユーザーが特権を持たず (Linux では B<CAP_SETUID> ケーパビリティ (capability) "
10316 "を持たず)、 I<uid> が呼び出し元プロセスの実 UID または保存 set-user-ID と一致"
10319 #. SVr4 documents an additional EINVAL error condition.
10320 #. type: Plain text
10321 #: build/C/man2/setuid.2:95
10323 "SVr4, POSIX.1-2001. Not quite compatible with the 4.4BSD call, which sets "
10324 "all of the real, saved, and effective user IDs."
10326 "SVr4, POSIX.1-2001. 4.4BSD のコールとは完全な互換性はない、 BSD のコールは"
10327 "実 (real)、保存 (saved)、実効 (effective) ID の全てを設定する。"
10329 #. type: Plain text
10330 #: build/C/man2/setuid.2:103
10333 #| "Linux has the concept of file system user ID, normally equal to the "
10334 #| "effective user ID. The B<setuid>() call also sets the file system user "
10335 #| "ID of the calling process. See B<setfsuid>(2)."
10337 "Linux has the concept of the file system user ID, normally equal to the "
10338 "effective user ID. The B<setuid>() call also sets the file system user ID "
10339 "of the calling process. See B<setfsuid>(2)."
10341 "Linux はファイル・システム・ユーザー ID の概念を持つ。 通常、これは実効ユー"
10342 "ザー ID に等しい。 B<setuid>() コールは呼び出し元のプロセスのファイル・シス"
10343 "テム・ユーザー ID も設定する。 B<setfsuid>(2) も参照すること。"
10345 #. type: Plain text
10346 #: build/C/man2/setuid.2:108
10349 #| "If I<uid> is different from the old effective uid, the process will be "
10350 #| "forbidden from leaving core dumps."
10352 "If I<uid> is different from the old effective UID, the process will be "
10353 "forbidden from leaving core dumps."
10355 "I<uid> が昔の実効 uid と異っていた場合、プロセスはコア・ダンプすることを 禁止"
10358 #. type: Plain text
10359 #: build/C/man2/setuid.2:118
10361 "The original Linux B<setuid>() system call supported only 16-bit user IDs. "
10362 "Subsequently, Linux 2.4 added B<setuid32>() supporting 32-bit IDs. The "
10363 "glibc B<setuid>() wrapper function transparently deals with the variation "
10364 "across kernel versions."
10367 #. type: Plain text
10368 #: build/C/man2/setuid.2:125
10370 "B<getuid>(2), B<seteuid>(2), B<setfsuid>(2), B<setreuid>(2), B<capabilities>"
10371 "(7), B<credentials>(7)"
10373 "B<getuid>(2), B<seteuid>(2), B<setfsuid>(2), B<setreuid>(2), B<capabilities>"
10374 "(7), B<credentials>(7)"
10377 #: build/C/man7/svipc.7:25
10383 #: build/C/man7/svipc.7:25
10386 msgstr "2009-01-26"
10388 #. type: Plain text
10389 #: build/C/man7/svipc.7:28
10390 msgid "svipc - System V interprocess communication mechanisms"
10391 msgstr "svipc - System V プロセス間通信機構"
10393 #. type: Plain text
10394 #: build/C/man7/svipc.7:35
10397 "B<#include E<lt>sys/types.hE<gt>>\n"
10398 "B<#include E<lt>sys/ipc.hE<gt>>\n"
10399 "B<#include E<lt>sys/msg.hE<gt>>\n"
10400 "B<#include E<lt>sys/sem.hE<gt>>\n"
10401 "B<#include E<lt>sys/shm.hE<gt>>\n"
10403 "B<#include E<lt>sys/types.hE<gt>>\n"
10404 "B<#include E<lt>sys/ipc.hE<gt>>\n"
10405 "B<#include E<lt>sys/msg.hE<gt>>\n"
10406 "B<#include E<lt>sys/sem.hE<gt>>\n"
10407 "B<#include E<lt>sys/shm.hE<gt>>\n"
10409 #. type: Plain text
10410 #: build/C/man7/svipc.7:43
10412 "This manual page refers to the Linux implementation of the System V "
10413 "interprocess communication (IPC) mechanisms: message queues, semaphore sets, "
10414 "and shared memory segments. In the following, the word I<resource> means an "
10415 "instantiation of one among such mechanisms."
10417 "このマニュアル・ページは System V プロセス間通信 (interprocess "
10418 "communication; IPC) 機構の Linux に おける実装を説明する。 このプロセス間通信"
10419 "機構には、 メッセージ・キュー (message queue)、セマフォー集合 (semaphore "
10420 "set)、 共有メモリ・セグメント (shared memory segment) などがある。以下で I<資"
10421 "源 (resource)> という用語を使用した場合にはこれらの機構のどれかを意味する。"
10424 #: build/C/man7/svipc.7:43
10426 msgid "Resource Access Permissions"
10427 msgstr "資源へのアクセス許可"
10429 #. type: Plain text
10430 #: build/C/man7/svipc.7:53
10432 "For each resource, the system uses a common structure of type I<struct "
10433 "ipc_perm> to store information needed in determining permissions to perform "
10434 "an IPC operation. The I<ipc_perm> structure, defined by the I<E<lt>sys/ipc."
10435 "hE<gt>> system header file, includes the following members:"
10437 "システムのそれぞれの資源は、IPC への操作を許可するかどうかを決定する ための情"
10438 "報を共通の構造体 I<struct ipc_perm> に格納して使用する。 I<ipc_perm> 構造体"
10439 "は、ヘッダーファイルの I<E<lt>sys/ipc.hE<gt>> に定義されており、以下のメン"
10442 #. type: Plain text
10443 #: build/C/man7/svipc.7:63
10446 "struct ipc_perm {\n"
10447 " uid_t cuid; /* creator user ID */\n"
10448 " gid_t cgid; /* creator group ID */\n"
10449 " uid_t uid; /* owner user ID */\n"
10450 " gid_t gid; /* owner group ID */\n"
10451 " unsigned short mode; /* r/w permissions */\n"
10454 "struct ipc_perm {\n"
10455 " uid_t cuid; /* 作成者のユーザーID */\n"
10456 " gid_t cgid; /* 作成者のグループID */\n"
10457 " uid_t uid; /* 所有者のユーザーID */\n"
10458 " gid_t gid; /* 所有者のグループID */\n"
10459 " unsigned short mode; /* 読み書きの許可 */\n"
10462 #. type: Plain text
10463 #: build/C/man7/svipc.7:73
10465 "The I<mode> member of the I<ipc_perm> structure defines, with its lower 9 "
10466 "bits, the access permissions to the resource for a process executing an IPC "
10467 "system call. The permissions are interpreted as follows:"
10469 "I<ipc_perm> 構造体の I<mode> メンバーは以下の 9 ビットで、プロセスの IPC シス"
10470 "テム・コール による資源へのアクセス許可を定義する。 許可は以下のように解釈さ"
10473 #. type: Plain text
10474 #: build/C/man7/svipc.7:77
10477 " 0400 Read by user.\n"
10478 " 0200 Write by user.\n"
10480 " 0400 ユーザーによる読み込み。\n"
10481 " 0200 ユーザーによる書き込み。\n"
10483 #. type: Plain text
10484 #: build/C/man7/svipc.7:80
10487 " 0040 Read by group.\n"
10488 " 0020 Write by group.\n"
10490 " 0040 グループによる読み込み。\n"
10491 " 0020 グループによる書き込み。\n"
10493 #. type: Plain text
10494 #: build/C/man7/svipc.7:83
10497 " 0004 Read by others.\n"
10498 " 0002 Write by others.\n"
10500 " 0004 他人による読み込み。\n"
10501 " 0002 他人による書き込み。\n"
10503 #. type: Plain text
10504 #: build/C/man7/svipc.7:91
10506 "Bits 0100, 0010, and 0001 (the execute bits) are unused by the system. "
10507 "Furthermore, \"write\" effectively means \"alter\" for a semaphore set."
10509 "システムはビット 0100, 0010, 0001 (実行ビット) は使用しない。 さらに、セマ"
10510 "フォーの場合には \"書き込み(write)\" は実際には \"変更(alter)\" を意味する。"
10512 #. type: Plain text
10513 #: build/C/man7/svipc.7:94
10515 "The same system header file also defines the following symbolic constants:"
10516 msgstr "同じヘッダーファイルには以下のシンボルの定義が含まれている:"
10519 #: build/C/man7/svipc.7:94
10521 msgid "B<IPC_CREAT>"
10522 msgstr "B<IPC_CREAT>"
10524 #. type: Plain text
10525 #: build/C/man7/svipc.7:97
10526 msgid "Create entry if key doesn't exist."
10527 msgstr "キー(key)が存在しない場合には新たなエントリを作成する。"
10530 #: build/C/man7/svipc.7:97
10532 msgid "B<IPC_EXCL>"
10533 msgstr "B<IPC_EXCL>"
10535 #. type: Plain text
10536 #: build/C/man7/svipc.7:100
10537 msgid "Fail if key exists."
10538 msgstr "キー(key)が存在する場合には失敗する。"
10541 #: build/C/man7/svipc.7:100
10543 msgid "B<IPC_NOWAIT>"
10544 msgstr "B<IPC_NOWAIT>"
10546 #. type: Plain text
10547 #: build/C/man7/svipc.7:103
10548 msgid "Error if request must wait."
10549 msgstr "要求が待たされる場合にはエラーになる。"
10552 #: build/C/man7/svipc.7:103
10554 msgid "B<IPC_PRIVATE>"
10555 msgstr "B<IPC_PRIVATE>"
10557 #. type: Plain text
10558 #: build/C/man7/svipc.7:106
10559 msgid "Private key."
10560 msgstr "プライベート・キー。"
10563 #: build/C/man7/svipc.7:106
10565 msgid "B<IPC_RMID>"
10566 msgstr "B<IPC_RMID>"
10568 #. type: Plain text
10569 #: build/C/man7/svipc.7:109
10570 msgid "Remove resource."
10574 #: build/C/man7/svipc.7:109
10577 msgstr "B<IPC_SET>"
10579 #. type: Plain text
10580 #: build/C/man7/svipc.7:112
10581 msgid "Set resource options."
10582 msgstr "資源にオプションを設定する。"
10585 #: build/C/man7/svipc.7:112
10587 msgid "B<IPC_STAT>"
10588 msgstr "B<IPC_STAT>"
10590 #. type: Plain text
10591 #: build/C/man7/svipc.7:115
10592 msgid "Get resource options."
10593 msgstr "資源のオプションを取得する。"
10595 #. type: Plain text
10596 #: build/C/man7/svipc.7:124
10598 "Note that B<IPC_PRIVATE> is a I<key_t> type, while all the other symbolic "
10599 "constants are flag fields and can be OR'ed into an I<int> type variable."
10601 "B<IPC_PRIVATE> は I<key_t> 型である。その他の全てのシンボルはフラグ・フィール"
10602 "ドとして I<int> 変数に OR 演算で格納することができる。"
10605 #: build/C/man7/svipc.7:124
10607 msgid "Message Queues"
10610 #. type: Plain text
10611 #: build/C/man7/svipc.7:132
10613 "A message queue is uniquely identified by a positive integer (its I<msqid>) "
10614 "and has an associated data structure of type I<struct msqid_ds>, defined in "
10615 "I<E<lt>sys/msg.hE<gt>>, containing the following members:"
10617 "メッセージ・キューは正の整数 (I<msqid>) によって識別され、 I<E<lt>sys/msg."
10618 "hE<gt>> に定義されている構造体 I<struct msqid_ds> に結びつけられている。 この"
10619 "構造体は以下のメンバーを含んでいる:"
10621 #. type: Plain text
10622 #: build/C/man7/svipc.7:145
10625 "struct msqid_ds {\n"
10626 " struct ipc_perm msg_perm;\n"
10627 " msgqnum_t msg_qnum; /* no of messages on queue */\n"
10628 " msglen_t msg_qbytes; /* bytes max on a queue */\n"
10629 " pid_t msg_lspid; /* PID of last msgsnd(2) call */\n"
10630 " pid_t msg_lrpid; /* PID of last msgrcv(2) call */\n"
10631 " time_t msg_stime; /* last msgsnd(2) time */\n"
10632 " time_t msg_rtime; /* last msgrcv(2) time */\n"
10633 " time_t msg_ctime; /* last change time */\n"
10636 "struct msqid_ds {\n"
10637 " struct ipc_perm msg_perm;\n"
10638 " msgqnum_t msg_qnum; /* キューにあるメッセージの数 */\n"
10639 " msglen_t msg_qbytes; /* キューの最大バイト数 */\n"
10640 " pid_t msg_lspid; /* 最後に msgsnd(2) をした PID */\n"
10641 " pid_t msg_lrpid; /* 最後に msgrcv(2) をした PID */\n"
10642 " time_t msg_stime; /* 最後に msgsnd(2) をした時間 */\n"
10643 " time_t msg_rtime; /* 最後に msgrcv(2) をした時間 */\n"
10644 " time_t msg_ctime; /* 最後に変更された時間 */\n"
10648 #: build/C/man7/svipc.7:147
10650 msgid "I<msg_perm>"
10651 msgstr "I<msg_perm>"
10653 #. type: Plain text
10654 #: build/C/man7/svipc.7:152
10656 "I<ipc_perm> structure that specifies the access permissions on the message "
10658 msgstr "メッセージ・キューへのアクセス許可を指定する I<ipc_perm> 構造体。"
10661 #: build/C/man7/svipc.7:152
10663 msgid "I<msg_qnum>"
10664 msgstr "I<msg_qnum>"
10666 #. type: Plain text
10667 #: build/C/man7/svipc.7:155
10668 msgid "Number of messages currently on the message queue."
10669 msgstr "現在、このメッセージ・キューにあるメッセージの数。"
10672 #: build/C/man7/svipc.7:155
10674 msgid "I<msg_qbytes>"
10675 msgstr "I<msg_qbytes>"
10677 #. type: Plain text
10678 #: build/C/man7/svipc.7:159
10679 msgid "Maximum number of bytes of message text allowed on the message queue."
10680 msgstr "メッセージ・キューに入れることができるメッセージの最大バイト数。"
10683 #: build/C/man7/svipc.7:159
10685 msgid "I<msg_lspid>"
10686 msgstr "I<msg_lspid>"
10688 #. type: Plain text
10689 #: build/C/man7/svipc.7:164
10690 msgid "ID of the process that performed the last B<msgsnd>(2) system call."
10691 msgstr "最後に B<msgsnd>(2) システム・コールを行なったプロセスの ID。"
10694 #: build/C/man7/svipc.7:164
10696 msgid "I<msg_lrpid>"
10697 msgstr "I<msg_lrpid>"
10699 #. type: Plain text
10700 #: build/C/man7/svipc.7:169
10701 msgid "ID of the process that performed the last B<msgrcv>(2) system call."
10702 msgstr "最後に B<msgrcv>(2) システム・コールを行なったプロセスの ID。"
10705 #: build/C/man7/svipc.7:169
10707 msgid "I<msg_stime>"
10708 msgstr "I<msg_stime>"
10710 #. type: Plain text
10711 #: build/C/man7/svipc.7:174
10712 msgid "Time of the last B<msgsnd>(2) system call."
10713 msgstr "最後に B<msgsnd>(2) システム・コールを行なった時間。"
10716 #: build/C/man7/svipc.7:174
10718 msgid "I<msg_rtime>"
10719 msgstr "I<msg_rtime>"
10721 #. type: Plain text
10722 #: build/C/man7/svipc.7:179
10723 msgid "Time of the last B<msgrcv>(2) system call."
10724 msgstr "最後に B<msgrcv>(2) を行なった時間。"
10727 #: build/C/man7/svipc.7:179
10729 msgid "I<msg_ctime>"
10730 msgstr "I<msg_ctime>"
10732 #. type: Plain text
10733 #: build/C/man7/svipc.7:185
10735 "Time of the last system call that changed a member of the I<msqid_ds> "
10737 msgstr "最後に I<msqid_ds> 構造体のメンバーが変更された時間。"
10740 #: build/C/man7/svipc.7:185
10742 msgid "Semaphore Sets"
10745 #. type: Plain text
10746 #: build/C/man7/svipc.7:193
10748 "A semaphore set is uniquely identified by a positive integer (its I<semid>) "
10749 "and has an associated data structure of type I<struct semid_ds>, defined in "
10750 "I<E<lt>sys/sem.hE<gt>>, containing the following members:"
10752 "セマフォー集合は正の整数 (I<semid>) によって識別され、 I<E<lt>sys/sem."
10753 "hE<gt>> に定義されている構造体 I<struct semid_ds> に結びつけられている。 この"
10754 "構造体は以下のメンバーを含んでいる:"
10756 #. type: Plain text
10757 #: build/C/man7/svipc.7:202
10760 "struct semid_ds {\n"
10761 " struct ipc_perm sem_perm;\n"
10762 " time_t sem_otime; /* last operation time */\n"
10763 " time_t sem_ctime; /* last change time */\n"
10764 " unsigned long sem_nsems; /* count of sems in set */\n"
10767 "struct semid_ds {\n"
10768 " struct ipc_perm sem_perm;\n"
10769 " time_t sem_otime; /* 最後に操作した時間 */\n"
10770 " time_t sem_ctime; /* 最後に変更した時間 */\n"
10771 " unsigned long sem_nsems; /* 集合の中にあるセマフォー数 */\n"
10775 #: build/C/man7/svipc.7:204
10777 msgid "I<sem_perm>"
10778 msgstr "I<sem_perm>"
10780 #. type: Plain text
10781 #: build/C/man7/svipc.7:209
10783 "I<ipc_perm> structure that specifies the access permissions on the semaphore "
10785 msgstr "セマフォー集合へのアクセス許可を指定する I<ipc_perm> 構造体。"
10788 #: build/C/man7/svipc.7:209
10790 msgid "I<sem_otime>"
10791 msgstr "I<sem_otime>"
10793 #. type: Plain text
10794 #: build/C/man7/svipc.7:214
10795 msgid "Time of last B<semop>(2) system call."
10796 msgstr "最後に B<semop>(2) システム・コールを行なった時間。"
10799 #: build/C/man7/svipc.7:214
10801 msgid "I<sem_ctime>"
10802 msgstr "I<sem_ctime>"
10804 #. type: Plain text
10805 #: build/C/man7/svipc.7:220
10807 "Time of last B<semctl>(2) system call that changed a member of the above "
10808 "structure or of one semaphore belonging to the set."
10810 "最後に B<semctl>(2) を行なって上記の構造体のメンバーを変更するか、セマフォー"
10811 "集合に属する セマフォーを変更した時間。"
10814 #: build/C/man7/svipc.7:220
10816 msgid "I<sem_nsems>"
10817 msgstr "I<sem_nsems>"
10819 #. type: Plain text
10820 #: build/C/man7/svipc.7:228
10822 "Number of semaphores in the set. Each semaphore of the set is referenced by "
10823 "a nonnegative integer ranging from B<0> to I<sem_nsems-1>."
10825 "セマフォー集合の中にあるセマフォーの数。 集合の中にあるそれぞれのセマフォーは"
10826 "負でない整数によって参照され、 B<0> から I<sem_nsems-1> までの番号を持つ。"
10828 #. type: Plain text
10829 #: build/C/man7/svipc.7:232
10831 "A semaphore is a data structure of type I<struct sem> containing the "
10832 "following members:"
10834 "セマフォーは I<struct sem> 型のデータ構造体であり、以下のメンバーを含んでい"
10837 #. unsigned short semncnt; /* nr awaiting semval to increase */
10838 #. unsigned short semzcnt; /* nr awaiting semval = 0 */
10839 #. type: Plain text
10840 #: build/C/man7/svipc.7:241
10844 " int semval; /* semaphore value */\n"
10845 " int sempid; /* PID for last operation */\n"
10849 " int semval; /* セマフォーの値 */\n"
10850 " int sempid; /* 最後に操作したプロセス ID */\n"
10854 #: build/C/man7/svipc.7:243
10859 #. type: Plain text
10860 #: build/C/man7/svipc.7:246
10861 msgid "Semaphore value: a nonnegative integer."
10862 msgstr "セマフォー値: 負でない整数。"
10865 #: build/C/man7/svipc.7:246
10872 #. Number of processes suspended awaiting for
10877 #. Number of processes suspended awaiting for
10880 #. type: Plain text
10881 #: build/C/man7/svipc.7:260
10883 "ID of the last process that performed a semaphore operation on this "
10885 msgstr "このセマフォーを最後に操作したプロセスの ID。"
10888 #: build/C/man7/svipc.7:260
10890 msgid "Shared Memory Segments"
10891 msgstr "共有メモリ・セグメント"
10893 #. type: Plain text
10894 #: build/C/man7/svipc.7:268
10896 "A shared memory segment is uniquely identified by a positive integer (its "
10897 "I<shmid>) and has an associated data structure of type I<struct shmid_ds>, "
10898 "defined in I<E<lt>sys/shm.hE<gt>>, containing the following members:"
10900 "共有メモリ・セグメトは正の整数 (I<shmid>) によって識別され、 I<E<lt>sys/shm."
10901 "hE<gt>> に定義されている I<struct shmid_ds> 構造体に結びつけられている。 この"
10902 "構造体は以下のメンバーを含んでいる:"
10904 #. type: Plain text
10905 #: build/C/man7/svipc.7:281
10908 "struct shmid_ds {\n"
10909 " struct ipc_perm shm_perm;\n"
10910 " size_t shm_segsz; /* size of segment */\n"
10911 " pid_t shm_cpid; /* PID of creator */\n"
10912 " pid_t shm_lpid; /* PID, last operation */\n"
10913 " shmatt_t shm_nattch; /* no. of current attaches */\n"
10914 " time_t shm_atime; /* time of last attach */\n"
10915 " time_t shm_dtime; /* time of last detach */\n"
10916 " time_t shm_ctime; /* time of last change */\n"
10919 "struct shmid_ds {\n"
10920 " struct ipc_perm shm_perm;\n"
10921 " size_t shm_segsz; /* セグメントのサイズ */\n"
10922 " pid_t shm_cpid; /* 作成者のプロセス ID */\n"
10923 " pid_t shm_lpid; /* 最後に操作したプロセス ID */\n"
10924 " shmatt_t shm_nattch; /* 現在、付加している数 */\n"
10925 " time_t shm_atime; /* 最後に付加した時間 */\n"
10926 " time_t shm_dtime; /* 最後に分離した時間 */\n"
10927 " time_t shm_ctime; /* 最後に変更した時間 */\n"
10931 #: build/C/man7/svipc.7:283
10933 msgid "I<shm_perm>"
10934 msgstr "I<shm_perm>"
10936 #. type: Plain text
10937 #: build/C/man7/svipc.7:288
10939 "I<ipc_perm> structure that specifies the access permissions on the shared "
10941 msgstr "共有メモリ・セグメントへのアクセス許可を指定した I<ipc_perm> 構造体。"
10944 #: build/C/man7/svipc.7:288
10946 msgid "I<shm_segsz>"
10947 msgstr "I<shm_segsz>"
10949 #. type: Plain text
10950 #: build/C/man7/svipc.7:291
10951 msgid "Size in bytes of the shared memory segment."
10952 msgstr "共有メモリ・セグメントのバイト数。"
10955 #: build/C/man7/svipc.7:291
10957 msgid "I<shm_cpid>"
10958 msgstr "I<shm_cpid>"
10960 #. type: Plain text
10961 #: build/C/man7/svipc.7:294
10962 msgid "ID of the process that created the shared memory segment."
10963 msgstr "共有メモリ・セグメントを作成したプロセスの ID。"
10966 #: build/C/man7/svipc.7:294
10968 msgid "I<shm_lpid>"
10969 msgstr "I<shm_lpid>"
10971 #. type: Plain text
10972 #: build/C/man7/svipc.7:301
10974 "ID of the last process that executed a B<shmat>(2) or B<shmdt>(2) system "
10977 "最後に B<shmat>(2) または B<shmdt>(2) システム・コールを実行したプロセスの "
10981 #: build/C/man7/svipc.7:301
10983 msgid "I<shm_nattch>"
10984 msgstr "I<shm_nattch>"
10986 #. type: Plain text
10987 #: build/C/man7/svipc.7:304
10988 msgid "Number of current alive attaches for this shared memory segment."
10990 "この共有メモリ・セグメントをメモリに付加 (attach) しているプロセスの数。"
10993 #: build/C/man7/svipc.7:304
10995 msgid "I<shm_atime>"
10996 msgstr "I<shm_atime>"
10998 #. type: Plain text
10999 #: build/C/man7/svipc.7:309
11000 msgid "Time of the last B<shmat>(2) system call."
11001 msgstr "最後に B<shmat>(2) システム・コールを行なった時間。"
11004 #: build/C/man7/svipc.7:309
11006 msgid "I<shm_dtime>"
11007 msgstr "I<shm_dtime>"
11009 #. type: Plain text
11010 #: build/C/man7/svipc.7:314
11011 msgid "Time of the last B<shmdt>(2) system call."
11012 msgstr "最後に B<shmdt>(2) システム・コールを行なった時間。"
11015 #: build/C/man7/svipc.7:314
11017 msgid "I<shm_ctime>"
11018 msgstr "I<shm_ctime>"
11020 #. type: Plain text
11021 #: build/C/man7/svipc.7:320
11022 msgid "Time of the last B<shmctl>(2) system call that changed I<shmid_ds>."
11024 "最後に B<shmctl>(2) システム・コールを行なって、 I<shmid_ds> 構造体を変更し"
11027 #. type: Plain text
11028 #: build/C/man7/svipc.7:334
11030 "B<ipc>(2), B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>"
11031 "(2), B<semget>(2), B<semop>(2), B<shmat>(2), B<shmctl>(2), B<shmdt>(2), "
11032 "B<shmget>(2), B<ftok>(3)"
11034 "B<ipc>(2), B<msgctl>(2), B<msgget>(2), B<msgrcv>(2), B<msgsnd>(2), B<semctl>"
11035 "(2), B<semget>(2), B<semop>(2), B<shmat>(2), B<shmctl>(2), B<shmdt>(2), "
11036 "B<shmget>(2), B<ftok>(3)"
11039 #: build/C/man3/ulimit.3:27
11045 #: build/C/man3/ulimit.3:27
11048 msgstr "2008-08-06"
11050 #. type: Plain text
11051 #: build/C/man3/ulimit.3:30
11052 msgid "ulimit - get and set user limits"
11053 msgstr "ulimit - ユーザー制限を取得・設定する"
11055 #. type: Plain text
11056 #: build/C/man3/ulimit.3:32
11057 msgid "B<#include E<lt>ulimit.hE<gt>>"
11058 msgstr "B<#include E<lt>ulimit.hE<gt>>"
11060 #. type: Plain text
11061 #: build/C/man3/ulimit.3:34
11062 msgid "B<long ulimit(int >I<cmd>B<, long >I<newlimit>B<);>"
11063 msgstr "B<long ulimit(int >I<cmd>B<, long >I<newlimit>B<);>"
11065 #. type: Plain text
11066 #: build/C/man3/ulimit.3:46
11068 "Warning: This routine is obsolete. Use B<getrlimit>(2), B<setrlimit>(2), "
11069 "and B<sysconf>(3) instead. For the shell command B<ulimit>(), see B<bash>"
11072 "注意: このルーチンは古い。 代わりに B<getrlimit>(2), B<setrlimit>(2), "
11073 "B<sysconf>(3) などを用いること。 シェルコマンドとしての B<ulimit>() につい"
11074 "ては、 B<bash>(1) を見ること。"
11076 #. type: Plain text
11077 #: build/C/man3/ulimit.3:53
11079 "The B<ulimit>() call will get or set some limit for the calling process. "
11080 "The I<cmd> argument can have one of the following values."
11082 "B<ulimit>() は呼び出し元のプロセスに関する制限のいくつかを取得・設定する。 "
11083 "I<cmd> 引き数には、以下の値のうちのどれか一つを与えることができる。"
11086 #: build/C/man3/ulimit.3:53
11088 msgid "B<UL_GETFSIZE>"
11089 msgstr "B<UL_GETFSIZE>"
11091 #. type: Plain text
11092 #: build/C/man3/ulimit.3:56
11093 msgid "Return the limit on the size of a file, in units of 512 bytes."
11094 msgstr "ファイルサイズに関する制限を返す。単位は 512 バイト。"
11097 #: build/C/man3/ulimit.3:56
11099 msgid "B<UL_SETFSIZE>"
11100 msgstr "B<UL_SETFSIZE>"
11102 #. type: Plain text
11103 #: build/C/man3/ulimit.3:59
11104 msgid "Set the limit on the size of a file."
11105 msgstr "ファイルサイズに関する制限を設定する。"
11108 #: build/C/man3/ulimit.3:59
11113 #. type: Plain text
11114 #: build/C/man3/ulimit.3:63
11116 "(Not implemented for Linux.) Return the maximum possible address of the "
11119 "(Linux では実装されていない) データセグメントで指定できるアドレスの最大値を"
11123 #: build/C/man3/ulimit.3:63
11128 #. type: Plain text
11129 #: build/C/man3/ulimit.3:67
11131 "(Implemented but no symbolic constant provided.) Return the maximum number "
11132 "of files that the calling process can open."
11134 "(実装されているが、対応するシンボリックな定数は存在しない) プロセスがオープ"
11135 "ンできるファイル数の最大値を返す。"
11137 #. type: Plain text
11138 #: build/C/man3/ulimit.3:74
11140 "On success, B<ulimit>() returns a nonnegative value. On error, -1 is "
11141 "returned, and I<errno> is set appropriately."
11143 "成功すると B<ulimit>() は 0 または正の値を返す。 エラーが生じると -1 を返"
11144 "し、 I<errno> を適切な値に設定する。"
11146 #. type: Plain text
11147 #: build/C/man3/ulimit.3:78
11148 msgid "A unprivileged process tried to increase a limit."
11149 msgstr "非特権プロセスが制限値を増加させようとした。"
11151 #. type: Plain text
11152 #: build/C/man3/ulimit.3:83
11153 msgid "SVr4, POSIX.1-2001. POSIX.1-2008 marks B<ulimit>() as obsolete."
11155 "SVr4, POSIX.1-2001. POSIX.1-2008 は B<ulimit>() を廃止予定としている。"
11157 #. type: Plain text
11158 #: build/C/man3/ulimit.3:88
11159 msgid "B<bash>(1), B<getrlimit>(2), B<setrlimit>(2), B<sysconf>(3)"
11160 msgstr "B<bash>(1), B<getrlimit>(2), B<setrlimit>(2), B<sysconf>(3)"
11162 #~ msgid "2010-06-19"
11163 #~ msgstr "2010-06-19"
11165 #~ msgid "1993-07-23"
11166 #~ msgstr "1993-07-23"
11168 #~ msgid "2007-12-28"
11169 #~ msgstr "2007-12-28"
11171 #~ msgid "I<rlim> points outside the accessible address space."
11172 #~ msgstr "I<rlim> がアクセス可能なアドレス空間の外を指している。"
11174 #~ msgid "2009-08-25"
11175 #~ msgstr "2009-08-25"
11178 #~ "The structure definition shown at the start of this page was taken from "
11179 #~ "4.3BSD Reno. Not all fields are meaningful under Linux. In Linux 2.4 "
11180 #~ "only the fields I<ru_utime>, I<ru_stime>, I<ru_minflt>, and I<ru_majflt> "
11181 #~ "are maintained. Since Linux 2.6, I<ru_nvcsw> and I<ru_nivcsw> are also "
11182 #~ "maintained. Since Linux 2.6.22, I<ru_inblock> and I<ru_oublock> are also "
11185 #~ "このページの最初で示した構造体の定義は 4.3BSD Reno のものを採用した。 "
11186 #~ "Linux では全てのフィールドが意味を持つというわけではない。 Linux 2.4 で"
11187 #~ "は、フィールド I<ru_utime>, I<ru_stime>, I<ru_minflt>, I<ru_majflt> のみが"
11188 #~ "メンテナンスされている。 Linux 2.6 以降では I<ru_nvcsw>, I<ru_nivcsw> もメ"
11189 #~ "ンテナンスされている。 Linux 2.6.22 以降では I<ru_inblock>, I<ru_oublock> "
11192 #~ msgid "2008-12-05"
11193 #~ msgstr "2008-12-05"
11195 #~ msgid "2007-07-26"
11196 #~ msgstr "2007-07-26"
11198 #~ msgid "2010-02-21"
11199 #~ msgstr "2010-02-21"
11201 #~ msgid "Linux Notes"
11202 #~ msgstr "Linux での注意"