1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637
|
.\" Copyright (C) 1994, 1995 by Daniel Quinlan (quinlan@yggdrasil.com)
.\" and Copyright (C) 2002-2008 Michael Kerrisk <mtk.manpages@gmail.com>
.\" with networking additions from Alan Cox (A.Cox@swansea.ac.uk)
.\" and scsi additions from Michael Neuffer (neuffer@mail.uni-mainz.de)
.\" and sysctl additions from Andries Brouwer (aeb@cwi.nl)
.\" and System V IPC (as well as various other) additions from
.\" Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
.\" Modified 1995-05-17 by faith@cs.unc.edu
.\" Minor changes by aeb and Marty Leisner (leisner@sdsp.mc.xerox.com).
.\" Modified 1996-04-13, 1996-07-22 by aeb@cwi.nl
.\" Modified 2001-12-16 by rwhron@earthlink.net
.\" Modified 2002-07-13 by jbelton@shaw.ca
.\" Modified 2002-07-22, 2003-05-27, 2004-04-06, 2004-05-25
.\" by Michael Kerrisk <mtk.manpages@gmail.com>
.\" 2004-11-17, mtk -- updated notes on /proc/loadavg
.\" 2004-12-01, mtk, rtsig-max and rtsig-nr went away in 2.6.8
.\" 2004-12-14, mtk, updated 'statm', and fixed error in order of list
.\" 2005-05-12, mtk, updated 'stat'
.\" 2005-07-13, mtk, added /proc/sys/fs/mqueue/*
.\" 2005-09-16, mtk, Added /proc/sys/fs/suid_dumpable
.\" 2005-09-19, mtk, added /proc/zoneinfo
.\" 2005-03-01, mtk, moved /proc/sys/fs/mqueue/* material to mq_overview.7.
.\" 2008-06-05, mtk, Added /proc/[pid]/oom_score, /proc/[pid]/oom_adj,
.\" /proc/[pid]/limits, /proc/[pid]/mountinfo, /proc/[pid]/mountstats,
.\" and /proc/[pid]/fdinfo/*.
.\" 2008-06-19, mtk, Documented /proc/[pid]/status.
.\" 2008-07-15, mtk, added /proc/config.gz
.\"
.\" FIXME 2.6.13 seems to have /proc/vmcore implemented
.\" in the source code, but there is no option available under
.\" 'make xconfig'; eventually this should be fixed, and then info
.\" from the patch-2.6.13 and change log could be used to write an
.\" entry in this man page.
.\" Needs CONFIG_VMCORE
.\"
.\" FIXME cross check against Documentation/filesystems/proc.txt
.\" to see what information could be imported from that file
.\" into this file.
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.\"
.\" Japanese Version Copyright (c) 1998,1999 Hiroaki Nagoya,
.\" Copyright (c) 2001-2005 Yuichi SATO,
.\" and Copyright (c) 2005-2013 Akihiro MOTOKI
.\" all rights reserved.
.\" Translated 1998-07-09, Hiroaki Nagoya <nagoya@cc.hit-u.ac.jp>
.\" Proofreaded 1998-07-24, Hiroaki Nagoya <nagoya@cc.hit-u.ac.jp> ,
.\" Nakano Takeo <nakano@apm.seikei.ac.jp> and
.\" Shinya Hanataka <hanataka@abyss.rim.or.jp>.
.\" Matched with man-pages-1.22 1999-01-21, Hiroaki Nagoya
.\" Updated 1999-12-04, Kentaro Shirakata <argrath@yo.rim.or.jp>
.\" Updated 2001-04-24, Yuichi SATO <ysato444@yahoo.co.jp>
.\" Updated 2002-01-14, Yuichi SATO
.\" Updated 2002-11-04, Yuichi SATO
.\" Updated 2003-03-01, Yuichi SATO
.\" Updated 2003-10-18, Yuichi SATO
.\" Updated 2003-11-27, Yuichi SATO
.\" Updated 2005-01-22, Yuichi SATO
.\" Updated 2005-09-14, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\" Updated 2005-11-19, Akihiro MOTOKI, LDP v2.14
.\" Updated 2006-01-18, Akihiro MOTOKI, LDP v2.21
.\" Updated 2006-02-15, Akihiro MOTOKI, LDP v2.23
.\" Updated 2006-03-05, Akihiro MOTOKI, LDP v2.25
.\" Updated 2006-04-15, Akihiro MOTOKI, LDP v2.29
.\" Updated 2007-01-05, Akihiro MOTOKI, LDP v2.43
.\" Updated 2007-07-04, Akihiro MOTOKI, LDP v2.58
.\" Updated 2007-09-03, Akihiro MOTOKI, LDP v2.64
.\" Updated 2007-10-11, Akihiro MOTOKI, LDP v2.65
.\" Updated 2008-02-06, Akihiro MOTOKI, LDP v2.76
.\" Updated 2008-09-21, Akihiro MOTOKI, LDP v3.09
.\" Updated 2009-03-03, Akihiro MOTOKI, LDP v3.19
.\" Updated 2009-03-13, Akihiro MOTOKI, LDP v3.20
.\" Updated 2012-06-04, Akihiro MOTOKI <amotoki@gmail.com>
.\" Updated 2013-05-01, Akihiro MOTOKI
.\" Updated 2013-05-04, Akihiro MOTOKI
.\" Updated 2013-07-24, Akihiro MOTOKI
.\" Updated 2013-08-16, Akihiro MOTOKI
.\" Updated 2013-08-30, Akihiro MOTOKI, LDP v3.53
.\"
.TH PROC 5 2014\-04\-12 Linux "Linux Programmer's Manual"
.SH 名前
proc \- プロセスの情報を含む擬似ファイルシステム
.SH 説明
\fIproc\fP ファイルシステムは擬似的なファイルシステムであり、 カーネル内のデータへのインターフェースとして使用される。 一般的には
\fI/proc\fP にマウントされる。 大部分のファイルは読み出し専用 (read\-only) であるが、 いくつかのファイルは書き込み可能であり、
そのファイルに書き込めばカーネルの内部変数を変更できる。
.LP
以下のリストでは \fI/proc\fP 階層以下のファイルやディレクトリの多くについて説明している。
.PD 1
.TP
\fI/proc/[pid]\fP
.\" FIXME Describe /proc/[pid]/attr and
.\" /proc/[pid]/task/[tid]/attr
.\" This is a directory
.\" Added in ???
.\" CONFIG_SECURITY
.\"
実行中のプロセスについてのサブディレクトリ。 サブディレクトリ名は (そのプロセスの) プロセス ID である。
各サブディレクトリは、以下の擬似ファイルとディレクトリを含む。
.TP
\fI/proc/[number]/auxv\fP (カーネル 2.6.0\-test7 以降)
実行時にプロセスに渡された ELF インタプリタ情報が格納されている。 個々のエントリは、\fIunsigned long\fP 型の ID 1 個に
\fIunsigned long\fP 型の値 1 個が続くフォーマットである。 最後のエントリには 0 が 2 個入っている。
.TP
\fI/proc/[pid]/cgroup\fP (Linux 2.6.24 以降)
.\" Info in Documentation/cgroups/cgroups.txt
このファイルは、プロセスやタスクが所属するコントロールグループを示す。
cgroup の各階層についてエントリーが 1 つあり、
各エントリーは以下の形式のコロン区切りのフィールドで構成される。
.nf
\f(CW 5:cpuacct,cpu,cpuset:/daemons\fP
.fi
.IP
コロン区切りの各フィールドは、左から右の順で、以下の意味を持つ。
.RS 11
.IP 1. 3
階層 ID 番号
.IP 2.
その階層に関連付けたサブシステムの集合
.IP 3.
プロセスが所属する階層内のコントロールグループ
.RE
.IP
このファイルが存在するのは、カーネルのコンフィギュレーション・オプショ
ン \fBCONFIG_CGROUPS\fP を有効にした場合だけである。
.TP
\fI/proc/[pid]/clear_refs\fP (Linux 2.6.22 以降)
.\" commit b813e931b4c8235bb42e301096ea97dbdee3e8fe (2.6.22)
.\" commit 398499d5f3613c47f2143b8c54a04efb5d7a6da9 (2.6.32)
.\" commit 040fa02077de01c7e08fa75be6125e4ca5636011 (3.11)
.\"
.\" "Clears page referenced bits shown in smaps output"
.\" write-only, writable only by the owner of the process
このファイルは書き込み専用ファイルで、書き込めるのはプロセスの所有者だけである。
このファイルには以下の値を書き込むことができる。
.RS
.TP
1 (Linux 2.6.22 以降)
.\" Internally: CLEAR_REFS_ALL
Reset the PG_Referenced and ACCESSED/YOUNG bits for all the pages associated
with the process. (Before kernel 2.6.32, writing any nonzero value to this
file had this effect.)
.TP
2 (Linux 2.6.32 以降)
.\" Internally: CLEAR_REFS_ANON
Reset the PG_Referenced and ACCESSED/YOUNG bits for all anonymous pages
associated with the process.
.TP
3 (Linux 2.6.32 以降)
.\" Internally: CLEAR_REFS_MAPPED
Reset the PG_Referenced and ACCESSED/YOUNG bits for all file\-mapped pages
associated with the process.
.RE
.IP
Clearing the PG_Referenced and ACCESSED/YOUNG bits provides a method to
measure approximately how much memory a process is using. One first
inspects the values in the "Referenced:" fields for the VMAs shown in
\fI/proc/[pid]/smaps\fP to get an idea of the memory footprint of the process.
One then clears the PG_Referenced and ACCESSED/YOUNG bits and, after some
measured time interval, once again inspects the values in the "Referenced:"
fields to get an idea of the change in memory footprint of the process
during the measured interval. If one is interested only in inspecting the
selected mapping types, then the value 2 or 3 can be used instead of 1.
A further value can be written to affect a different bit:
.RS
.TP
4 (Linux 3.11 以降)
.\" Internally: CLEAR_REFS_SOFT_DIRTY
Clear the soft\-dirty bit for all the pages associated with the process.
This is used (in conjunction with \fI/proc/[pid]/pagemap\fP) by the
check\-point restore system to discover which pages of a process have been
dirtied since the file \fI/proc/[pid]/clear_refs\fP was written to.
.RE
.IP
Writing any value to \fI/proc/[pid]/clear_refs\fP other than those listed above
has no effect.
\fI/proc/[pid]/clear_refs\fP ファイルが存在するのは、カーネルのコンフィギュレーション・オプション
\fBCONFIG_PROC_PAGE_MONITOR\fP を有効にした場合だけである。
.TP
\fI/proc/[pid]/cmdline\fP
.\" In 2.3.26, this also used to be true if the process was swapped out.
プロセスの完全なコマンド行を保持する。ただし、そのプロセスがゾンビプロセス
の場合は、このファイルは空となる。つまり、このファイルを読み出しても一文字
も返らない。このファイルではコマンドライン引き数が、
ヌルバイト (\(aq\e0\(aq) で区切られた文字列として書かれており、
最後の文字列の後にヌルバイトが一つ置かれる。
.TP
\fI/proc/[pid]/coredump_filter\fP (kernel 2.6.23 以降)
\fBcore\fP(5) 参照。
.TP
\fI/proc/[pid]/cpuset\fP (kernel 2.6.12 以降)
.\" and/proc/[pid]/task/[tid]/cpuset
\fBcpuset\fP(7) 参照。
.TP
\fI/proc/[pid]/cwd\fP
プロセスのカレントワーキングディレクトリへのシンボリックリンク。 例えば、プロセス 20 のカレントワーキングディレクトリを見つけるためには、
次のようにすればよい。
.in +4n
.nf
$\fB cd /proc/20/cwd; /bin/pwd\fP
.fi
.in
\fIpwd\fP コマンドはシェルの内部コマンドのことがよくあり、
うまく動作しないかもしれない。
\fBbash\fP(1) では \fIpwd\ \-P\fP を使ってもよい。
.\" The following was still true as at kernel 2.6.13
マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 このシンボリックリンクの内容は参照できない (スレッドの終了は通常
\fBpthread_exit\fP(3) を呼び出しにより行われる)。
.TP
\fI/proc/[pid]/environ\fP
このファイルはプロセスの環境変数を含んでいる。 各エントリはヌルバイト (\(aq\e0\(aq) で区切られていて、
末尾にヌルバイトがあるかもしれない。 したがって、プロセス 1 の環境変数を表示するためには 次のようにすればよい。
.in +4n
.nf
$\fB strings /proc/1/environ\fP
.fi
.in
.TP
\fI/proc/[pid]/exe\fP
.\" The following was still true as at kernel 2.6.13
Linux 2.2 以降では、このファイルはシンボリックリンクで、 実行可能コマンドの実際のパス名を格納している。
このシンボリックリンクは通常のように辿ることができる; これをオープンすると実行可能ファイルがオープンされる。 (コマンドラインで)
\fI/proc/[pid]/exe\fP と入力すると、プロセス番号 [pid] で実行されている 実行可能ファイルをもう一つ実行することができる。
マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 このシンボリックリンクの内容は参照できない (スレッドの終了は通常
\fBpthread_exit\fP(3) を呼び出しにより行われる)。
Linux 2.0 以前では、 \fI/proc/[pid]/exe\fP は実行されたバイナリへのポインタで、シンボリックリンクのように見える。 Linux
2.0 以前では、このファイルに対して \fBreadlink\fP(2) を実行すると、次のフォーマットの文字列が返る。
[デバイス番号]:iノード番号
たとえば、[0301]:1502 はメジャーデバイス番号 03 (IDE, MFM などのドライブ) マイナーデバイス番号 01
(最初のドライブの最初のパーティション) の デバイス上の iノード番号 1502 である。
\fI\-inum\fP オプションをつけて \fBfind\fP(1) を使うと、
このファイルの所在を探すことができる。
.TP
\fI/proc/[pid]/fd/\fP
プロセスがオープンしたファイル各々に対するエントリを含むサブディレクトリ。 ファイルディスクリプタがファイル名で、
実際のファイルへのシンボリックリンクになっている。 したがって 0 は標準入力、1 は標準出力、2 は標準エラー出力、などとなる。
パイプやソケットのファイルディスクリプタでは、 エントリーはファイル種別が inode という内容を持つシンボリックリンクとなる。 このファイルに対して
\fBreadlink\fP(2) を呼び出すと以下の形式の文字列が返る。
type:[inode]
例えば、 \fIsocket:[2248868]\fP は inode が 2248868 のソケットである。 ソケットの場合、 その inode を元に
\fI/proc/net/\fP 以下のファイルを参照し詳しい情報を得ることができる。
対応する inode がないファイルディスクリプタ (例えば \fBepoll_create\fP(2), \fBeventfd\fP(2),
\fBinotify_init\fP(2), \fBsignalfd\fP(2), \fBtimerfd\fP(2) により生成されたファイルディスクリプタ) では、
エントリーはその内容が以下の形式のシンボリックリンクとなる。
anon_inode:<file\-type>
\fIfile\-type\fP は角括弧で囲まれる場合がある。
例えば、 epoll ファイルディスクリプタは、 内容が文字列 \fIanon_inode:[eventpoll]\fP
のシンボリックリンクを持つ場合がある。
.\"The following was still true as at kernel 2.6.13
マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 このディレクトリの内容は参照できない (スレッドの終了は通常
\fBpthread_exit\fP(3) を呼び出しにより行われる)。
コマンドライン引き数としてファイル名を受け取るが、引き数が 渡されなかった場合
に標準入力から入力を受け取らないようなプログラムや、 コマンドライン引き数とし
て書き込みファイルを受け取るが、引き数が 渡されなかった場合に標準出力に出力を
行わないようなプログラムであっても、 \fI/proc/[pid]/fd\fP を使うことで標準入力や
標準出力を使用できるようになる。 例えば、 \fI\-i\fP を入力ファイルを指定するフラ
グ、 \fI\-o\fP を出力ファイルを指定するフラグと仮定すると、
.in +4n
.nf
$\fB foobar \-i /proc/self/fd/0 \-o /proc/self/fd/1 ...\fP
.fi
.in
.\" The following is not true in my tests (MTK):
.\" Note that this will not work for
.\" programs that seek on their files, as the files in the fd directory
.\" are not seekable.
を実行することにより、フィルタとして動作させることができる。
\fI/proc/self/fd/N\fP は、ある種の UNIX や UNIX 風のシステムにある \fI/dev/fd/N\fP
とだいたい同じである。 事実 Linux のたいていの MAKEDEV スクリプトは、
\fI/dev/fd\fP を \fI/proc/self/fd\fP へのシンボリックリンクにしている。
ほとんどのシステムでは、シンボリックリンク \fI/dev/stdin\fP, \fI/dev/stdout\fP, \fI/dev/stderr\fP
が提供されており、それぞれ \fI/proc/self/fd\fP 内のファイル \fI0\fP, \fI1\fP, \fI2\fP にリンクされている。
したがって、上述のサンプルコマンドは次のようにも書くことができる。
.in +4n
.nf
$\fB foobar \-i /dev/stdin \-o /dev/stdout ...\fP
.fi
.in
.\" FIXME Describe /proc/[pid]/loginuid
.\" Added in 2.6.11; updating requires CAP_AUDIT_CONTROL
.\" CONFIG_AUDITSYSCALL
.TP
\fI/proc/[pid]/fdinfo/\fP (kernel 2.6.22 以降)
このサブディレクトリには、そのプロセスがオープンしているファイル毎の エントリが入っており、ファイルディスクリプタがファイル名となっている。
各ファイルの内容を読み出すことで、対応するファイルディスクリプタに関する 情報を得ることができる。以下に例を示す。
.in +4n
.nf
$\fB cat /proc/12015/fdinfo/4\fP
pos: 1000
flags: 01002002
.fi
.in
\fIpos\fP フィールドは 10 進数で、現在のファイルオフセットを示す。 \fIflags\fP フィールドは 8 進数で、
ファイルのアクセスモードとファイル状態フラグを示す (\fBopen\fP(2) 参照)。
.\" FIXME
.\" Certain file types include additional info; see
.\" Documentation/filesystems/proc.txt
.\"
.\" Especially interesting is this:
.\"
.\" commit ab49bdecc3ebb46ab661f5f05d5c5ea9606406c6
.\" Author: Cyrill Gorcunov <gorcunov@openvz.org>
.\" Date: Mon Dec 17 16:05:06 2012 -0800
.\"
.\" Basically, the /proc/PID/fdinfo/ entry for an inotify FD
.\" includes the file handles for all watched FDs
.\"
このディレクトリのファイルは、プロセスの所有者だけが読み出すことができる。
.TP
\fI/proc/[pid]/io\fP (kernel 2.6.20 以降)
.\" commit 7c3ab7381e79dfc7db14a67c6f4f3285664e1ec2
このファイルは、 プロセスの I/O 統計情報を表示する。 以下に例を挙げる。
.in +4n
.nf
#\fB cat /proc/3828/io\fP
rchar: 323934931
wchar: 323929600
syscr: 632687
syscw: 632675
read_bytes: 0
write_bytes: 323932160
cancelled_write_bytes: 0
.fi
.in
フィールドの詳細は以下の通りである。
.RS
.TP
\fIrchar\fP: 読み出し文字数
このタスクがきっかけでストレージから読み出されたバイト数。 この値は、単純に \fBread\fP(2)
や同様のシステムコールからこのプロセスに渡されたバイト数の合計である。 この値には、 端末入出力なども含まれ、 実際に物理ディスク I/O
が必要であったか (読み出しがページキャッシュからの読み出しで十分であったか) どうかは関係ない。
.TP
\fIwchar\fP: 書き込み文字数
このタスクがきっかけで行われたか行われるはずのディスクへの書き込みバイト数。 \fIrchar\fP と同じ注意があてはまる。
.TP
\fIsyscr\fP: 読み出しシステムコール数
読み出し I/O 操作\(em\fBread\fP(2) や \fBpread\fP(29 などのシステムコール\(emを試みた回数。
.TP
\fIsyscw\fP: 書き込みシステムコール数
書き込み I/O 操作\(em\fBwrite\fP(2) や \fBpwrite\fP(29 などのシステムコール\(emを試みた回数。
.TP
\fIread_bytes\fP: 読み出しバイト数
このプロセスが実際にストレージ層から取得しようとしたバイト数。 ブロックデバイス上のファイルシステムでは正確な値となる。
.TP
\fIwrite_bytes\fP: 書き込みバイト数
このプロセスが実際にストレージ層に転送しようとしたバイト数。
.TP
\fIcancelled_write_bytes\fP:
The big inaccuracy here is truncate. If a process writes 1MB to a file and
then deletes the file, it will in fact perform no writeout. But it will
have been accounted as having caused 1MB of write. In other words: this
field represents the number of bytes which this process caused to not
happen, by truncating pagecache. A task can cause "negative" I/O too. If
this task truncates some dirty pagecache, some I/O which another task has
been accounted for (in its \fIwrite_bytes\fP) will not be happening.
.RE
.IP
\fI注意\fP: 現在の実装では 32 ビットシステムでは少しいやらしい点がある。 プロセス B が 64
ビットカウンターの一つを更新している途中に、プロセス A がプロセス B の \fI/proc/[pid]/io\fP を読んだ場合、 プロセス A
に更新中の結果が見えることがある。
.TP
\fI/proc/[pid]/limits\fP (kernel 2.6.24 以降)
.\" commit 3036e7b490bf7878c6dae952eec5fb87b1106589
このファイルは、そのプロセスの各リソース制限について、 ソフト・リミット、ハード・リミット、計測単位を表示する (\fBgetrlimit\fP(2)
参照)。 Linux 2.6.35 以前では、 プロセスの実 UID を持つプロセスだけが、 このファイルを読み出すことができる。 Linux
2.6.36 以降では、 システム上のすべてのユーザがこのファイルを読み出すことができる。
.TP
\fI/proc/[pid]/map_files/\fP (kernel 3.3 以降)
.\" commit 640708a2cff7f81e246243b0073c66e6ece7e53e
このサブディレクトリには、 メモリマップされたファイルに対応するエントリーが置かれる (\fBmmap\fP(2) 参照)。 エントリーの名前がメモリ領域の
(16 進数表現の) 開始アドレスと終了アドレスの組で、 エントリーはマップされているファイルへのシンボリックリンクである。 以下に例を示す。 なお、
出力は幅が 80 文字のディスプレイに合うように折り返して整形されている。
.in +4n
.nf
$\fB ls \-l /proc/self/map_files/\fP
lr\-\-\-\-\-\-\-\-. 1 root root 64 Apr 16 21:31
3252e00000\-3252e20000 \-> /usr/lib64/ld\-2.15.so
\&...
.fi
.in
これらのエントリーが存在するのは \fBMAP_FILE\fP フラグでマッピングされたメモリ領域についてであるが、 Linux での無名の共有メモリ
(\fBMAP_ANON | MAP_SHARED\fP で作成された領域) の実装方法では、
このディレクトリに無名の共有メモリに関するエントリーも存在する。 以下は、 マッピング元のファイルが削除された \fI/dev/zero\fP
ファイルでの例である。
.in +4n
.nf
lrw\-\-\-\-\-\-\-. 1 root root 64 Apr 16 21:33
7fc075d2f000\-7fc075e6f000 \-> /dev/zero (deleted)
.fi
.in
このディレクトリが存在するのは、 カーネルのコンフィギュレーション・オプション \fBCONFIG_CHECKPOINT_RESTORE\fP
が有効になっている場合だけである。
.TP
\fI/proc/[pid]/maps\fP
現在マッピングされているメモリ領域とそのアクセスパーミッションを含む。 メモリマッピングについての詳しい情報は \fBmmap\fP(2) を参照。
ファイルのフォーマットは以下のとおり:
.in -7n
.nf
\fIaddress perms offset dev inode pathname\fP
00400000\-00452000 r\-xp 00000000 08:02 173521 /usr/bin/dbus\-daemon
00651000\-00652000 r\-\-p 00051000 08:02 173521 /usr/bin/dbus\-daemon
00652000\-00655000 rw\-p 00052000 08:02 173521 /usr/bin/dbus\-daemon
00e03000\-00e24000 rw\-p 00000000 00:00 0 [heap]
00e24000\-011f7000 rw\-p 00000000 00:00 0 [heap]
\&...
35b1800000\-35b1820000 r\-xp 00000000 08:02 135522 /usr/lib64/ld\-2.15.so
35b1a1f000\-35b1a20000 r\-\-p 0001f000 08:02 135522 /usr/lib64/ld\-2.15.so
35b1a20000\-35b1a21000 rw\-p 00020000 08:02 135522 /usr/lib64/ld\-2.15.so
35b1a21000\-35b1a22000 rw\-p 00000000 00:00 0
35b1c00000\-35b1dac000 r\-xp 00000000 08:02 135870 /usr/lib64/libc\-2.15.so
35b1dac000\-35b1fac000 \-\-\-p 001ac000 08:02 135870 /usr/lib64/libc\-2.15.so
35b1fac000\-35b1fb0000 r\-\-p 001ac000 08:02 135870 /usr/lib64/libc\-2.15.so
35b1fb0000\-35b1fb2000 rw\-p 001b0000 08:02 135870 /usr/lib64/libc\-2.15.so
\&...
f2c6ff8c000\-7f2c7078c000 rw\-p 00000000 00:00 0 [stack:986]
\&...
7fffb2c0d000\-7fffb2c2e000 rw\-p 00000000 00:00 0 [stack]
7fffb2d48000\-7fffb2d49000 r\-xp 00000000 00:00 0 [vdso]
.fi
.in
\fIaddress\fP フィールドは、 そのマッピングが占めているプロセスのアドレス空間である。 \fIperms\fP
フィールドはパーミッションのセットである。
.nf
.in +5
r = read
w = write
x = execute
s = shared
p = private (copy on write)
.fi
.in
\fIoffset\fP はファイル (などの) 中でのオフセット、 \fIdev\fP はデバイス (メジャーデバイス番号:マイナーデバイス番号)、
\fIinode\fP はそのデバイスの i ノード番号である。 0 は、BSS (初期化されていないデータ領域) の場合のように、 このメモリ領域はどの i
ノードとも関連付けられていないことを意味する。
\fIpathname\fP フィールドは、 通常そのマッピングに対応するファイルである。 ELF ファイルの場合、 ELF プログラムヘッダの Offset
フィールドを見ることで (\fIreadelf\ \-l\fP))、 簡単に \fIoffset\fP との対応付けをすることができる。
これに加え、 役に立つ擬似パス名がある。
.RS 12
.TP
\fI[stack]\fP
初期プロセスのスタック (初期プロセスはメインスレッドとも呼ばれる)。
.TP
\fI[stack:<tid>]\fP (Linux 3.4 以降)
.\" commit b76437579d1344b612cf1851ae610c636cec7db0
スレッドのスタック (\fI<tid>\fP はスレッド ID である)。 パス \fI/proc/[pid]/task/[tid]/\fP
に対応する。
.TP
\fI[vdso]\fP
動的にリンクされる仮想共有オブジェクト (virtual dynamically linked shared object)。
.TP
\fI[heap]\fP
プロセスのヒープ。
.in
.RE
.IP
\fIpathname\fP が空の場合、 その領域は \fBmmap\fP(2) を使って確保された無名マッピングである。 \fBgdb\fP(1),
\fBstrace\fP(1) などを使ってプロセスを実行しない限り、 この領域をプロセスのソースと対応付ける簡単な方法はない。
Linux 2.0 ではパス名を書いたフィールドがない。
.TP
\fI/proc/[pid]/mem\fP
このファイルは、 \fBopen\fP(2), \fBread\fP(2), \fBlseek\fP(2)
を通して、プロセスのメモリのページにアクセスするために使われる。
.TP
\fI/proc/[pid]/mountinfo\fP (Linux 2.6.26 以降)
.\" This info adapted from Documentation/filesystems/proc.txt
このファイルには、マウントポイントについての情報が入っている。 以下のような形式の行から構成される。
.nf
\f(CW36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 \- ext3 /dev/root rw,errors=continue
(1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11)\fP
.fi
.IP
括弧付きの数字は、以下の説明のためのものである。
.RS 7
.TP 5
(1)
マウント ID: マウントの一意な識別子 (\fBumount\fP(2) の後は再利用されるかもしれない)。
.TP
(2)
parent ID: 親マウントの ID (マウントツリーの最上位の場合は自分自身の ID となる)。
.TP
(3)
major:minor: ファイルシステム上のファイルの \fIst_dev\fP の値 (\fBstat\fP(2) 参照)。
.TP
(4)
ルート: そのファイルシステム内のマウントのルート。
.TP
(5)
マウントポイント: マウントポイントのそのプロセスのルートからの相対パス。
.TP
(6)
マウントオプション: 各マウントのオプション。
.TP
(7)
オプションフィールド: "tag[:value]" 形式のフィールドが 0 個以上並ぶ。
.TP
(8)
セパレータ: オプションフィールドの終わりを示す。
.TP
(9)
ファイルシステム種別: ファイルシステムの名前。 "type[.subtype]" という形式となる。
.TP
(10)
マウント元: ファイルシステム固有の情報。ない場合は "none" となる。
.TP
(11)
super options: スーパーブロック単位のオプション。
.RE
.IP
解釈する側は認識できないオプションフィールドは全て無視すべきである。 現在のところ、オプションフィールドとしては以下のようなものがある。
.RS 12
.TP 18
shared:X
マウントはピアグループ (peer group) X で共有されている。
.TP
master:X
マウントはピアグループ (peer group) X のスレーブである。
.TP
propagate_from:X
マウントはスレーブであり、ピアグループ X (*) から mount propagation を受信する。
.TP
unbindable
マウントは unbind できない。
.RE
.IP
(*) X は、プロセスの root で直近の dominant peer group である。 X がマウントの直接のマスターである場合や、 同じ
root に dominant peer group がない場合は、 "master:X" フィールドだけが存在し、
"propagate_from:X" フィールドは存在しない。
mount propagation の詳細については、 Linux カーネルソースツリー内の
\fIDocumentation/filesystems/sharedsubtree.txt\fP を参照。
.TP
\fI/proc/[pid]/mounts\fP (Linux 2.4.19 以降)
そのプロセスのマウント名前空間に現在マウントされている 全ファイルシステムのリスト。 このファイルのフォーマットは \fBfstab\fP(5)
に載っている。 カーネル 2.6.15 以降では、このファイルを監視することができる (pollable)。
このファイルを読み出し用にオープンした後で、このファイルに変更があると (つまりファイルシステムのマウントやアンマウントがあると)、
\fBselect\fP(2) ではそのファイルディスクリプタは読み出し可能となり、 \fBpoll\fP(2) と \fBepoll_wait\fP(2)
ではそのファイルはエラー状態として通知される。
.TP
\fI/proc/[pid]/mountstats\fP (Linux 2.6.17 以降)
このファイルを通じて、そのプロセスの名前空間内のマウントポイントに関する 各種情報 (統計、設定情報) を参照できる。
ファイルの各行は以下のフォーマットである。
.nf
device /dev/sda7 mounted on /home with fstype ext3 [statistics]
( 1 ) ( 2 ) (3 ) (4)
.fi
.IP
各行のフィールドは以下の通りである。
.RS 7
.TP 5
(1)
マウントされているデバイス名 (対応するデバイスがない場合は "nodevice" となる)。
.TP
(2)
マウントポイントのファイルシステムツリーにおけるパス名。
.TP
(3)
ファイルシステム種別。
.TP
(4)
追加の統計や設定情報。 現在のところ (Linux 2.6.26 時点では)、 このフィールドで情報が提供されているのは NFS
ファイルシステムだけである。
.RE
.IP
このファイルはプロセスの所有者だけが読み出すことができる。
.TP
\fI/proc/[pid]/ns/\fP (Linux 3.0 以降)
.\" See commit 6b4e306aa3dc94a0545eb9279475b1ab6209a31f
このサブディレクトリには、名前空間毎に 1 エントリが置かれる。
各エントリは \fBsetns\fP(2) による操作をサポートしている。
名前空間に関する情報は \fBclone\fP(2) を参照。
.TP
\fI/proc/[pid]/ns/ipc\fP (Linux 3.0 以降)
このファイルをファイルシステムのどこか他の場所に bind mount することで (\fBmount\fP(2)
参照)、現在この名前空間にいる全てのプロセスが終了したとしても、 \fIpid\fP で指定されたプロセスの IPC 名前空間は有効な状態で保たれる。
このファイルをオープンすると、 \fIpid\fP で指定されたプロセスの IPC
名前空間のファイルハンドルが返される。このファイルディスクリプタがオープンされている限り、この名前空間にいる全てのプロセスが終了したとしても、この
IPC 名前空間は有効なままとなる。このファイルディスクリプタは \fBsetns\fP(2) に渡すことができる。
.TP
\fI/proc/[pid]/ns/net\fP (Linux 3.0 以降)
このファイルをファイルシステムのどこか他の場所に bind mount することで (\fBmount\fP(2)
参照)、現在この名前空間にいる全てのプロセスが終了したとしても、 \fIpid\fP で指定されたプロセスのネットワーク名前空間は有効な状態で保たれる。
このファイルをオープンすると、 \fIpid\fP
で指定されたプロセスのネットワーク名前空間のファイルハンドルが返される。このファイルディスクリプタがオープンされている限り、この名前空間にいる全てのプロセスが終了したとしても、このネットワーク名前空間は有効なままとなる。このファイルディスクリプタは
\fBsetns\fP(2) に渡すことができる。
.TP
\fI/proc/[pid]/ns/uts\fP (Linux 3.0 以降)
このファイルをファイルシステムのどこか他の場所に bind mount することで (\fBmount\fP(2)
参照)、現在この名前空間にいる全てのプロセスが終了したとしても、 \fIpid\fP で指定されたプロセスの UTS 名前空間は有効な状態で保たれる。
このファイルをオープンすると、 \fIpid\fP で指定されたプロセスの UTS
名前空間のファイルハンドルが返される。このファイルディスクリプタがオープンされている限り、この名前空間にいる全てのプロセスが終了したとしても、この
UTS 名前空間は有効なままとなる。このファイルディスクリプタは \fBsetns\fP(2) に渡すことができる。
.TP
\fI/proc/[pid]/numa_maps\fP (Linux 2.6.14 以降)
\fBnuma\fP(7) を参照。
.TP
\fI/proc/[pid]/oom_adj\fP (Linux 2.6.11 以降)
このファイルは、メモリ不足 (OOM) の状況下でどのプロセスを殺すべきかを選択す
るのに使用されるスコアを調整するのに使用される。カーネルは、プロセスの
\fIoom_score\fP 値のビットシフト操作に、この値を使用する。この値として有効な値
は \-16 から +15 までと、特別な意味を持つ \-17 である。 \-17 はそのプロセス
に対する OOM\-killing を完全に無効にすることを意味する。正の値ほど、そのプロ
セスが OOM\-killer により殺される可能性が高くなり、負の値ほど可能性が低くなる。
.IP
このファイルのデフォルト値は 0 である。 新しいプロセスは親プロセスの \fIoom_adj\fP の設定を継承する。
このファイルを変更するためには、プロセスは特権 (\fBCAP_SYS_RESOURCE\fP) を持っていなければならない。
.IP
Linux 2.6.36 以降では、 このファイルの使用は非推奨とされ、 代わりに \fI/proc/[pid]/oom_score_adj\fP
が推奨されている。
.TP
\fI/proc/[pid]/oom_score\fP (Linux 2.6.11 以降)
.\" See mm/oom_kill.c::badness() in the 2.6.25 sources
.\" See mm/oom_kill.c::badness() in the 2.6.25 sources
このファイルは、OOM\-killer のプロセス選択用として、カーネルが このプロセス
に対して与えた現在のスコアを表示する。 高いスコアは、そのプロセスが
OOM\-killer により選択される 可能性が高いことを意味する。 このスコアの基本は
そのプロセスが使用しているメモリ量であり、 以下の要因により加算 (+) 減算 (\-)
が行われる。
.RS
.IP * 2
そのプロセスが多くの子プロセスを \fBfork\fP(2) を使って作成しているか (+)。
.IP *
そのプロセスが長時間実行されて来たか、
もしくは 多くの CPU 時間を使用しているか (\-)。
.IP *
そのプロセスが低い nice 値 (> 0) を持っているか (+)。
.IP *
.\" More precisely, if it has CAP_SYS_ADMIN or CAP_SYS_RESOURCE
そのプロセスが特権を持っているか (\-)。
.IP *
.\" More precisely, if it has CAP_SYS_RAWIO
そのプロセスが direct hardware access を行っているか (\-)。
.RE
.IP
\fIoom_score\fP は、そのプロセスの \fIoom_score_adj\fP や \fIoom_adj\fP 設定で規定される調整にも影響を与える。
.TP
\fI/proc/[pid]/oom_score_adj\fP (Linux 2.6.36 以降)
.\" Text taken from 3.7 Documentation/filesystems/proc.txt
This file can be used to adjust the badness heuristic used to select which
process gets killed in out\-of\-memory conditions.
The badness heuristic assigns a value to each candidate task ranging from 0
(never kill) to 1000 (always kill) to determine which process is targeted.
The units are roughly a proportion along that range of allowed memory the
process may allocate from, based on an estimation of its current memory and
swap use. For example, if a task is using all allowed memory, its badness
score will be 1000. If it is using half of its allowed memory, its score
will be 500.
There is an additional factor included in the badness score: root processes
are given 3% extra memory over other tasks.
The amount of "allowed" memory depends on the context in which the
OOM\-killer was called. If it is due to the memory assigned to the
allocating task's cpuset being exhausted, the allowed memory represents the
set of mems assigned to that cpuset (see \fBcpuset\fP(7)). If it is due to a
mempolicy's node(s) being exhausted, the allowed memory represents the set
of mempolicy nodes. If it is due to a memory limit (or swap limit) being
reached, the allowed memory is that configured limit. Finally, if it is due
to the entire system being out of memory, the allowed memory represents all
allocatable resources.
The value of \fIoom_score_adj\fP is added to the badness score before it is
used to determine which task to kill. Acceptable values range from \-1000
(OOM_SCORE_ADJ_MIN) to +1000 (OOM_SCORE_ADJ_MAX). This allows user space to
control the preference for OOM\-killing, ranging from always preferring a
certain task or completely disabling it from OOM\-killing. The lowest
possible value, \-1000, is equivalent to disabling OOM\-killing entirely for
that task, since it will always report a badness score of 0.
Consequently, it is very simple for user space to define the amount of
memory to consider for each task. Setting a \fIoom_score_adj\fP value of +500,
for example, is roughly equivalent to allowing the remainder of tasks
sharing the same system, cpuset, mempolicy, or memory controller resources
to use at least 50% more memory. A value of \-500, on the other hand, would
be roughly equivalent to discounting 50% of the task's allowed memory from
being considered as scoring against the task.
For backward compatibility with previous kernels, \fI/proc/[pid]/oom_adj\fP can
still be used to tune the badness score. Its value is scaled linearly with
\fIoom_score_adj\fP.
.\" FIXME Describe /proc/[pid]/pagemap
.\" Added in 2.6.25
.\" CONFIG_PROC_PAGE_MONITOR
Writing to \fI/proc/[pid]/oom_score_adj\fP or \fI/proc/[pid]/oom_adj\fP will
change the other with its scaled value.
.TP
\fI/proc/[pid]/root\fP
UNIX と Linux では、 ファイルシステムのルート (/) をプロセスごとに別々にできる。 これはシステムコール \fBchroot\fP(2)
によって設定する。 このファイルはプロセスのルートディレクトリを指すシンボリックリンクで、 \fIexe\fP や \fIfd/*\fP
などと同じような動作をする。
.\" The following was still true as at kernel 2.6.13
.\" FIXME Describe /proc/[pid]/seccomp
.\" Added in 2.6.12
.\" FIXME Describe /proc/[pid]/sessionid
.\" Added in 2.6.25; read-only; only readable by real UID
.\" CONFIG_AUDITSYSCALL
.\" FIXME Describe /proc/[pid]/sched
.\" Added in 2.6.23
.\" CONFIG_SCHED_DEBUG, and additional fields if CONFIG_SCHEDSTATS
.\" Displays various scheduling parameters
.\" This file can be written, to reset stats
.\" FIXME Describe /proc/[pid]/schedstats and
.\" /proc/[pid]/task/[tid]/schedstats
.\" Added in 2.6.9
.\" CONFIG_SCHEDSTATS
マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 このシンボリックリンクの内容は参照できない (スレッドの終了は通常
\fBpthread_exit\fP(3) を呼び出しにより行われる)。
.TP
\fI/proc/[pid]/smaps\fP (Linux 2.6.14 以降)
このファイルは、そのプロセスの各マッピングのメモリ消費量を表示する。 マッピングのそれぞれについて、以下のような内容が表示される。
.in +4n
.nf
00400000\-0048a000 r\-xp 00000000 fd:03 960637 /bin/bash
Size: 552 kB
Rss: 460 kB
Pss: 100 kB
Shared_Clean: 452 kB
Shared_Dirty: 0 kB
Private_Clean: 8 kB
Private_Dirty: 0 kB
Referenced: 460 kB
Anonymous: 0 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
.fi
.in
The first of these lines shows the same information as is displayed for the
mapping in \fI/proc/[pid]/maps\fP. The remaining lines show the size of the
mapping, the amount of the mapping that is currently resident in RAM
("Rss"), the process' proportional share of this mapping ("Pss"), the number
of clean and dirty shared pages in the mapping, and the number of clean and
dirty private pages in the mapping. "Referenced" indicates the amount of
memory currently marked as referenced or accessed. "Anonymous" shows the
amount of memory that does not belong to any file. "Swap" shows how much
would\-be\-anonymous memory is also used, but out on swap.
The "KernelPageSize" entry is the page size used by the kernel to back a
VMA. This matches the size used by the MMU in the majority of cases.
However, one counter\-example occurs on PPC64 kernels whereby a kernel using
64K as a base page size may still use 4K pages for the MMU on older
processors. To distinguish, this patch reports "MMUPageSize" as the page
size used by the MMU.
The "Locked" indicates whether the mapping is locked in memory or not.
"VmFlags" field represents the kernel flags associated with the particular
virtual memory area in two letter encoded manner. The codes are the
following:
rd \- readable
wr \- writable
ex \- executable
sh \- shared
mr \- may read
mw \- may write
me \- may execute
ms \- may share
gd \- stack segment growns down
pf \- pure PFN range
dw \- disabled write to the mapped file
lo \- pages are locked in memory
io \- memory mapped I/O area
sr \- sequential read advise provided
rr \- random read advise provided
dc \- do not copy area on fork
de \- do not expand area on remapping
ac \- area is accountable
nr \- swap space is not reserved for the area
ht \- area uses huge tlb pages
nl \- non\-linear mapping
ar \- architecture specific flag
dd \- do not include area into core dump
sd \- soft\-dirty flag
mm \- mixed map area
hg \- huge page advise flag
nh \- no\-huge page advise flag
mg \- mergable advise flag
\fI/proc/[pid]/smaps\fP ファイルが存在するのは、カーネルのコンフィギュレーション・オプション
\fBCONFIG_PROC_PAGE_MONITOR\fP を有効にした場合だけである。
.TP
\fI/proc/[pid]/stack\fP (Linux 2.6.29 以降)
.\" 2ec220e27f5040aec1e88901c1b6ea3d135787ad
This file provides a symbolic trace of the function calls in this process's
kernel stack. This file is provided only if the kernel was built with the
\fBCONFIG_STACKTRACE\fP configuration option.
.TP
\fI/proc/[pid]/stat\fP
プロセスの状態についての情報。 これは \fBps\fP(1) で使われ、 \fI/usr/src/linux/fs/proc/array.c\fP
で定義されている。
各フィールドを順番に、 \fBscanf\fP(3) のフォーマット指定子付きで以下に示す。
.RS
.TP 12
\fIpid\fP %d
(1) プロセス ID。
.TP
\fIcomm\fP %s
(2) 括弧でくくられた実行形式のファイル名。 実行形式がスワップアウトされているかどうかによらず、 見ることができる。
.TP
\fIstate\fP %c
(3) "RSDZTW" のどれか 1 文字。 R は実行中 (running)、 S は割り込み可能な休眠状態 (sleeping in an
interruptible wait)、 D は割り込み不可能なディスクスリープの待機状態 (waiting in uninterruptible
disk sleep)、 Z はゾンビ状態 (zombie)、 T はトレースされている (traced) か (シグナルにより) 停止している状態
(stopped)、 W はページング中 (paging) を表している。
.TP
\fIppid\fP %d
(4) 親プロセスの PID。
.TP
\fIpgrp\fP %d
(5) プロセスのプロセスグループ ID。
.TP
\fIsession\fP %d
(6) プロセスのセッション ID。
.TP
\fItty_nr\fP %d
(7) プロセスの制御端末 (マイナー・デバイス番号はビット 31〜20 と 7〜0 にまたがって格納され、 メジャー・デバイス番号はビット 15〜8
に格納される)。
.TP
\fItpgid\fP %d
.\" This field and following, up to and including wchan added 0.99.1
(8) プロセスの制御端末のフォアグランド・プロセス・グループの ID。
.TP
\fIflags\fP %u (Linux 2.6.22 より前は %lu)
(9) プロセスのカーネルフラグワード。 ビットの意味は、 \fI<linux/sched.h>\fP で定義されている PF_*
を参照すること。 詳細はカーネルのバージョンに依存する。
.TP
\fIminflt\fP %lu
(10) プロセスが引き起こしたマイナーフォールト (minor fault、ディスクから メモリページへのロードを必要としないフォールト) の回数。
.TP
\fIcminflt\fP %lu
(11) (そのプロセスが終了を待っている) 子プロセスが引き起こしたマイナーフォールトの回数。
.TP
\fImajflt\fP %lu
(12) プロセスが引き起こしたメジャーフォールト (major fault、ディスクからメモリページへのロードを必要とするフォールト) の回数。
.TP
\fIcmajflt\fP %lu
(13) (そのプロセスが終了を待っている) 子プロセスが引き起こしたメジャーフォールトの回数。
.TP
\fIutime\fP %lu
(14) このプロセスがユーザーモードでスケジューリングされた時間の合計。 clock tick 単位で計測される
(\fIsysconf(_SC_CLK_TCK)\fP で割った値が表示される)。 この値にはゲスト時間 \fIguest_time\fP (仮想 CPU
の実行に消費された時間)
も含まれる。これは、ゲスト時間のフィールドを認識しないアプリケーションにおいて、ゲスト時間分を計算に入れ損ねないようにするためである。
.TP
\fIstime\fP %lu
(15) プロセスのカーネルモードでの実行時間 (単位 jiffies)。 このプロセスがカーネルモードでスケジューリングされた時間の合計。 clock
tick 単位で計測される (\fIsysconf(_SC_CLK_TCK)\fP で割った値が表示される)。
.TP
\fIcutime\fP %ld
(16) このプロセスの子プロセスで、終了待ち (waited\-for) のプロセスが、 ユーザモードでスケジューリングされた時間の合計。 clock
tick 単位で計測される (\fIsysconf(_SC_CLK_TCK)\fP で割った値が表示される)。 (\fBtimes\fP(2) も参照すること。)
この値にはゲスト時間 \fIcguest_time\fP (仮想 CPU を実行するのに消費した時間、下記参照) も含まれる。
.TP
\fIcstime\fP %ld
(17) このプロセスの子プロセスで、終了待ち (waited\-for) のプロセスが、カーネルモードでスケジューリングされた時間の合計。 clock
tick 単位で計測される (\fIsysconf(_SC_CLK_TCK)\fP で割った値が表示される)。
.TP
\fIpriority\fP %ld
(18) (Linux 2.6 の場合の説明) リアルタイム・スケジューリングポリシー (下記の
\fIpolicy ;\fP \fBsched_setscheduler\fP(2) 参照) で動作しているプロセスでは、 この
値はスケジューリング優先度を反転した値 (スケジューリング優先度を マイナスにし
た値) となる。値は \-2 から \-100 までの範囲の数値で、 それぞれリアルタイム優先
度の 1 から 99 に対応する。 リアルタイム以外のスケジューリングポリシーで動作し
ているプロセスでは、 この値はカーネル内で管理されている nice 値そのもの
(\fBsetpriority\fP(2)) となる。 カーネルは nice 値を 0 (高) から 39 (低) の範囲
の値として保持しており、 それぞれユーザに見える nice 値の \-20 から 19 に対応
する。
.\" And back in kernel 1.2 days things were different again.
Linux 2.6 より前では、このプロセスに割り当てられたスケジューリング 重みを変換した値が表示されていた。
.TP
\fInice\fP %ld
.\" Back in kernel 1.2 days things were different.
.\" .TP
.\" \fIcounter\fP %ld
.\" The current maximum size in jiffies of the process's next timeslice,
.\" or what is currently left of its current timeslice, if it is the
.\" currently running process.
.\" .TP
.\" \fItimeout\fP %u
.\" The time in jiffies of the process's next timeout.
.\" timeout was removed sometime around 2.1/2.2
(19) nice 値 (\fBsetpriority\fP(2) 参照)。 19 (最低優先) から \-20 (最高優先)
の範囲の値である。
.TP
\fInum_threads\fP %ld
(20) このプロセスのスレッド数 (Linux 2.6 以降)。 カーネル 2.6 より前では、このフィールドは削除されたフィールドの 場所埋めとして
0 にハードコードされていた。
.TP
\fIitrealvalue\fP %ld
(21) インターバルタイマによって、次に \fBSIGALRM\fP がプロセスへ送られるまでの時間 (単位 jiffies)。 カーネル 2.6.17
以降では、このフィールドはメンテナンスされなくなり、 0 にハードコードされている。
.TP
\fIstarttime\fP %llu (Linux 2.6 より前は %lu)
(22) プロセスの起動時刻。システムが起動した時刻が起点である。 Linux 2.6 より前のカーネルでは、 この値の単位は jiffies
であった。 Linux 2.6 以降では、 値の単位はクロック tick である (\fIsysconf(_SC_CLK_TCK)\fP で割った値となる)。
.TP
\fIvsize\fP %lu
(23) 仮想メモリのサイズ。単位はバイト。
.TP
\fIrss\fP %ld
(24) Resident Set Size。プロセスが持っている実メモリ上のページ数。
これはちょうどテキスト、データ、スタック空間に使われているページ数である。 デマンドロードされていないページや
スワップアウトされたページの数は含んでいない。
.TP
\fIrsslim\fP %lu
(25) このプロセスの rss の現在のソフト・リミット (バイト単位)。 \fBgetrlimit\fP(2) の \fBRLIMIT_RSS\fP
の説明を参照。
.TP
\fIstartcode\fP %lu
(26) プログラムテキストが実行可能であるような領域の先頭アドレス。
.TP
\fIendcode\fP %lu
(27) プログラムテキストが実行可能であるような領域の末尾アドレス。
.TP
\fIstartstack\fP %lu
(28) スタックの開始アドレス (すなわち、スタックの底)。
.TP
\fIkstkesp\fP %lu
(29) 現在の ESP (スタックポインタ) の値。 プロセスのカーネルスタックページにある。
.TP
\fIkstkeip\fP %lu
(30) 現在の EIP (インストラクションポインタ) の値。
.TP
\fIsignal\fP %lu
(31) 処理待ちのシグナルのビットマップ。 10
進数で表示される。このフィールドは廃止予定である。リアルタイム・シグナルに関する情報は表示されないからである。代わりに
\fI/proc/[pid]/status\fP を使うこと。
.TP
\fIblocked\fP %lu
(32) ブロックされた (blocked) シグナルのビットマップ。 10 進数で表示される。 このフィールドは廃止予定である。
リアルタイム・シグナルに関する情報は表示されないからである。 代わりに \fI/proc/[pid]/status\fP を使うこと。
.TP
\fIsigignore\fP %lu
(33) 無視された (ignored) シグナルのビットマップ。 10 進数で表示される。 このフィールドは廃止予定である。
リアルタイム・シグナルに関する情報は表示されないからである。 代わりに \fI/proc/[pid]/status\fP を使うこと。
.TP
\fIsigcatch\fP %lu
(34) 捕捉された (caught) シグナルのビットマップ。 10 進数で表示される。 このフィールドは廃止予定である。
リアルタイム・シグナルに関する情報は表示されないからである。 代わりに \fI/proc/[pid]/status\fP を使うこと。
.TP
\fIwchan\fP %lu
(35) This is the "channel" in which the process is waiting. It is the
address of a location in the kernel where the process is sleeping. The
corresponding symbolic name can be found in \fI/proc/[pid]/wchan\fP.
.TP
\fInswap\fP %lu
.\" nswap was added in 2.0
(36) スワップされたページ数 (メンテナンスされていない)。
.TP
\fIcnswap\fP %lu
.\" cnswap was added in 2.0
(37) 子プロセスの \fInswap\fP の累計 (メンテナンスされていない)。
.TP
\fIexit_signal\fP %d (Linux 2.1.22 以降)
(38) プロセスが死んだときに親プロセスに送られるシグナル。
.TP
\fIprocessor\fP %d (Linux 2.2.8 以降)
(39) このプロセスを最後に実行した CPU の番号。
.TP
\fIrt_priority\fP %u (Linux 2.5.19 以降; Linux 2.6.22 より前は %lu)
(40) リアルタイム・スケジューリングの優先度。 リアルタイム・ポリシーの元でスケジューリングされるプロセスでは 1 から 99 の範囲の値となり、
リアルタイム以外のスケジューリングポリシーのプロセスでは 0 となる (\fBsched_setscheduler\fP(2) 参照)。
.TP
\fIpolicy\fP %u (Linux 2.5.19 以降; Linux 2.6.22 より前は %lu)
(41) スケジューリング・ポリシー (\fBsched_setscheduler\fP(2) 参照)。 値は、 \fIlinux/sched.h\fP の
SCHED_* 定数を使ってデコードすればよい。
.TP
\fIdelayacct_blkio_ticks\fP %llu (Linux 2.6.18 以降)
(42) (clock tick (100分の1秒) 単位での) ブロック I/O の総遅延量。
.TP
\fIguest_time\fP %lu (Linux 2.6.24 以降)
(43) プロセスのゲスト時間 (ゲスト OS の仮想 CPU を実行するのに消費された時間)。 clock tick 単位で計測される
(\fIsysconf(_SC_CLK_TCK)\fP で割った値が表示される)。
.TP
\fIcguest_time\fP %ld (Linux 2.6.24 以降)
(44) プロセスの子プロセスのゲスト時間。 clock tick 単位で計測される (\fIsysconf(_SC_CLK_TCK)\fP
で割った値が表示される)。
.RE
.TP
\fI/proc/[pid]/statm\fP
(ページ単位で計測した) メモリ使用量についての情報を提供する。 各列は以下の通りである。
.in +4n
.nf
.\" (not including libs; broken, includes data segment)
.\" (including libs; broken, includes library text)
size プログラムサイズの総計
(\fI/proc/[pid]/status\fP の VmSize と同じ)
resident 実メモリ上に存在するページ
(\fI/proc/[pid]/status\fP の VmRSS と同じ)
share 共有ページ (ファイルと関連付けられているページ)
text テキスト (コード)
lib ライブラリ (Linux 2.6 では未使用)
data データ + スタック
dt ダーティページ (Linux 2.6 では未使用)
.fi
.in
.TP
\fI/proc/[pid]/status\fP
\fI/proc/[pid]/stat\fP と \fI/proc/[pid]/statm\fP にある多くの情報を、人間が解析しやすい形式で提供する。
以下に例を示す。
.in +4n
.nf
$\fB cat /proc/$$/status\fP
Name: bash
State: S (sleeping)
Tgid: 3515
Pid: 3515
PPid: 3452
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 100 100 100 100
FDSize: 256
Groups: 16 33 100
VmPeak: 9136 kB
VmSize: 7896 kB
VmLck: 0 kB
VmHWM: 7572 kB
VmRSS: 6316 kB
VmData: 5224 kB
VmStk: 88 kB
VmExe: 572 kB
VmLib: 1708 kB
VmPTE: 20 kB
Threads: 1
SigQ: 0/3067
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: 00000001
Cpus_allowed_list: 0
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 150
nonvoluntary_ctxt_switches: 545
.fi
.in
.IP
フィールドの詳細は以下の通りである。
.RS
.IP * 2
\fIName\fP: このプロセスにより実行されたコマンド。
.IP *
\fIState\fP: プロセスの現在の状態。 "R (running; 実行中)", "S (sleeping; 休眠状態)", "D (disk
sleep; ディスク待ちの休眠状態)", "T (stopped; 停止状態)", "T (tracing stop; トレースによる停止)", "Z
(zombie; ゾンビ状態)", "X (dead; 死亡)" のいずれかである。
.IP *
\fITgid\fP: スレッドグループ ID (すなわち、プロセス ID)。
.IP *
\fIPid\fP: スレッド ID (\fBgettid\fP(2) 参照)。
.IP *
\fIPPid\fP: 親プロセスの PID。
.IP *
\fITracerPid\fP: このプロセスをトレースしているプロセスの PID (トレースされていない場合は 0)。
.IP *
\fIUid\fP, \fIGid\fP: 実 UID/GID、実効 UID/GID、保存 set\-UID/GID、ファイルシステム UID/GID。
.IP *
\fIFDSize\fP: 現在割り当てられているファイルディスクリプタのスロット数。
.IP *
\fIGroups\fP: 補助グループのリスト。
.IP *
\fIVmPeak\fP: 仮想メモリサイズのピーク値。
.IP *
\fIVmSize\fP: 仮想メモリサイズ。
.IP *
\fIVmLck\fP: ロックされているメモリサイズ (\fBmlock\fP(3) 参照)。
.IP *
\fIVmHWM\fP: 実メモリ上に存在するページサイズ (resident set size) のピーク値 ("high water mark")。
.IP *
\fIVmRSS\fP: 実メモリ上に存在するページサイズ。
.IP *
\fIVmData\fP, \fIVmStk\fP, \fIVmExe\fP: データ、スタック、テキストセグメントのサイズ。
.IP *
\fIVmLib\fP: 共有ライブラリ・コードのサイズ。
.IP *
\fIVmPTE\fP: ページ・テーブル・エントリのサイズ (Linux 2.6.10 以降)。
.IP *
\fIThreads\fP: このスレッドが属するプロセスのスレッド数。
.IP *
\fISigQ\fP: このフィールドにはスラッシュで区切られた 2 つの数字が入っている。この数字はこのプロセスの実ユーザ ID
宛にキューイングされたシグナルに関するものである。一つ目の数字は、この実ユーザ ID
宛に現在キューイングされているシグナル数である。二つ目の数字は、このプロセス宛にキューイングされたシグナル数に関するリソース上限値である
(\fBgetrlimit\fP(2) の \fBRLIMIT_SIGPENDING\fP の説明を参照)。
.IP *
\fISigPnd\fP, \fIShdPnd\fP: スレッド宛およびプロセス全体宛の処理待ちシグナルの数 (\fBpthreads\fP(7),
\fBsignal\fP(7) 参照)。
.IP *
\fISigBlk\fP, \fISigIgn\fP, \fISigCgt\fP: ブロックされるシグナル、無視されるシグナル、捕捉待ちのシグナルを 示すマスク値
(\fBsignal\fP(7))。
.IP *
\fICapInh\fP, \fICapPrm\fP, \fICapEff\fP: 継承可能 (inheritable)、許可 (permitted)、実効
(effective) の各ケーパビリティセットで有効になっているケーパビリティのマスク値 (\fBcapabilities\fP(7) 参照)。
.IP *
\fICapBnd\fP: ケーパビリティ・バウンディングセット (カーネル 2.6.26 以降、 \fBcapabilities\fP(7) 参照)。
.IP *
\fICpus_allowed\fP: このプロセスが実行を許可されている CPU のマスク値 (Linux 2.6.24 以降、 \fBcpuset\fP(7)
参照)。
.IP *
\fICpus_allowed_list\fP: 前項と同じだが、「リスト形式」での表示 (Linux 2.6.26 以降、 \fBcpuset\fP(7)
参照)。
.IP *
\fIMems_allowed\fP: このプロセスが使用できるメモリノードのマスク値 (Linux 2.6.24 以降、 \fBcpuset\fP(7)
参照)。
.IP *
\fIMems_allowed_list\fP: 前項と同じだが、「リスト形式」での表示 (Linux 2.6.26 以降、 \fBcpuset\fP(7)
参照)。
.IP *
\fIvoluntary_context_switches\fP, \fInonvoluntary_context_switches\fP:
自発的/非自発的なコンテキストスイッチの回数 (Linux 2.6.23 以降)。
.RE
.TP
\fI/proc/[pid]/task\fP (Linux 2.6.0\-test6 以降)
このディレクトリには、そのプロセスのスレッド情報を含む サブディレクトリが 1 スレッドにつき 1 つ置かれる。
各サブディレクトリの名前はスレッドのスレッド ID (\fI[tid]\fP) を示す数字である \fB(\fPgettid\fB(2)\fP を参照)。
これらの各サブディレクトリには、 \fI/proc/[pid]\fP ディレクトリ以下と同じ名前と内容のファイル群がある。
すべてのスレッドで共有される属性の場合、 \fItask/[tid]\fP サブディレクトリ以下の各ファイルの内容は 親ディレクトリ
\fI/proc/[pid]\fP の対応するファイルと同じになることだろう (例えば、マルチスレッド・プロセスではファイル
\fItask/[tid]/cwd\fP はいずれも親ディレクトリ内の \fI/proc/[pid]/cwd\fP
と同じ値を持つことになる。なぜなら、一つのプロセスに属すすべての スレッドは作業ディレクトリを共有するからである)。 スレッド毎に独立な属性の場合、
\fItask/[tid]\fP サブディレクトリ以下の各ファイルは異なる値を持つことがある (例えば、ファイル \fItask/[tid]/status\fP
はスレッド毎に異なる値を持つ可能性がある)。
.\" The following was still true as at kernel 2.6.13
マルチスレッドプロセスでは、メインスレッドがすでに終了している場合、 \fI/proc/[pid]/task\fP ディレクトリの内容は参照できない
(スレッドの終了は通常 \fBpthread_exit\fP(3) を呼び出しにより行われる)。
.TP
\fI/proc/[pid]/wchan\fP (Linux 2.6.0 以降)
The symbolic name corresponding to the location in the kernel where the
process is sleeping.
.TP
\fI/proc/apm\fP
Advanced Power Management のバージョンとバッテリ情報。 カーネルのコンパイル時に \fBCONFIG_APM\fP
を定義したときに存在する。
.TP
\fI/proc/bus\fP
インストールされている各バス用にサブディレクトリがある。
.TP
\fI/proc/bus/pccard\fP
PCMCIA デバイスの情報が書かれるサブディレクトリ。 カーネルのコンパイル時に \fBCONFIG_PCMCIA\fP を定義したときに存在する。
.TP
\fI/proc/[pid]/timers\fP (Linux 3.10 以降)
.\" commit 5ed67f05f66c41e39880a6d61358438a25f9fee5
.\" commit 48f6a7a511ef8823fdff39afee0320092d43a8a0
このプロセスの POSIX タイマーのリスト。 各タイマーは文字列 "ID:" で始まる行に表示される。 例:
.in +4n
.nf
ID: 1
signal: 60/00007fff86e452a8
notify: signal/pid.2634
ClockID: 0
ID: 0
signal: 60/00007fff86e452a8
notify: signal/pid.2634
ClockID: 1
.fi
.in
各タイマーに表示される行の意味は次の通りである。
.RS
.TP
\fIID\fP
このタイマーの ID。 この ID は \fBtimer_create\fP(2) が返すタイマー ID と同じではない。 \fIsiginfo_t\fP 構造化の
\fIsi_timerid\fP フィールドで参照できるカーネル内部での ID と同じである (\fBsigaction\fP(2) 参照)。
.TP
\fIsignal\fP
このタイマーが通知の配送に使用するシグナル番号である。 スラッシュの後ろは、シグナルハンドラーに渡される
\fIsigev_value.sival_ptr\fP 値である。 シグナルで通知されるタイマーでのみ有効である。
.TP
\fInotify\fP
スラッシュの前の部分は、このタイマーが使用する通知の配送方法であり、「スレッド」「シグナル」「なし」のいずれかである。 スラッシュのすぐ後には、
\fBSIGEV_THREAD_ID\fP 通知を行うタイマーでは文字列の "tid" が、 もしくは他の方法で通知するタイマーでは "pid"
が表示される。 "." の後ろは、 そのタイマーがシングルで通知を配送する場合にはシグナルの配送対象となるプロセスの PID である。
.TP
\fIClockID\fP
このフィールドはタイマーが時間を計測するのに使用するクロックを示す。 ほとんどのクロックでは、このフィールドは \fI<time.h>\fP
で公開されるユーザー空間の \fBCLOCK_*\fP 定数のいずれかの数字である。 \fBCLOCK_PROCESS_CPUTIME_ID\fP
タイマーでは、このフィールドに \-6 が表示される。 \fBCLOCK_THREAD_CPUTIME_ID\fP タイマーでは \-2 が表示される。
.RE
.TP
\fI/proc/bus/pccard/drivers\fP
.TP
\fI/proc/bus/pci\fP
いくつかのサブディレクトリがあり、 PCI バス・インストールされているデバイス・ デバイスドライバの情報が書かれた仮想ファイルがある。
これらのファイルのうちいくつかは ASCII フォーマットではない。
.TP
\fI/proc/bus/pci/devices\fP
PCI デバイスの情報。 \fBlspci\fP(8) や \fBsetpci\fP(8) でアクセスすることができる。
.TP
\fI/proc/cmdline\fP
ブート時に Linux カーネルに渡された引き数。 引き数の受け渡しは、たいてい \fBlilo\fP(8) や \fBgrub\fP(8)
といったブートマネージャを使って行われる。
.TP
\fI/proc/config.gz\fP (Linux 2.6 以降)
このファイルでは、現在実行中のカーネルの構築時に使用された 設定オプションを参照できる。 書式は、 (\fImake xconfig\fP, \fImake
config\fP などを使って) カーネルの設定を変更した際に生成される \fI.config\fP ファイルのものと同じである。
ファイルの内容は圧縮されており、 \fBzcat\fP(1) や \fBzgrep\fP(1) を使うと、表示や検索ができる。 ファイルが変更されていない限り、
\fI/proc/config.gz\fP の内容は次のコマンドで得られる内容と同じである。
.in +4n
.nf
cat /lib/modules/$(uname \-r)/build/.config
.fi
.in
.IP
\fI/proc/config.gz\fP が提供されるのは、カーネルの設定で \fBCONFIG_IKCONFIG_PROC\fP
が有効になっている場合のみである。
.TP
\fI/proc/cpuinfo\fP
このファイルは、CPU およびシステムアーキテクチャに依存する項目を 集めたもので、リストの内容はサポートされているアーキテクチャ毎に異なる。 2
つだけ共通の項目がある。 \fIprocessor\fP はプロセッサ番号で、 \fIbogomips\fP はカーネルの初期化時に計算されるシステム定数である。
SMP マシンでは各 CPU についての情報が書かれている。 \fBlscpu\fP(1) コマンドはこのファイルから情報を収集する。
.TP
\fI/proc/devices\fP
メジャーデバイス番号とデバイスグループのテキスト形式のリスト。 MAKEDEV スクリプトはこのファイルを使って、
カーネルとの整合性を保つことができる。
.TP
\fI/proc/diskstats\fP (Linux 2.5.69 以降)
このファイルには各ディスクデバイスのディスク I/O 統計情報が書かれている。 更に詳しい情報は、Linux カーネルソースファイル
\fIDocumentation/iostats.txt\fP を参照すること。
.TP
\fI/proc/dma\fP
登録されている \fIISA\fP DMA (direct memory access) チャネルのリスト。
.TP
\fI/proc/driver\fP
空のサブディレクトリ。
.TP
\fI/proc/execdomains\fP
実行ドメインのリスト (ABI パーソナリティ)。
.TP
\fI/proc/fb\fP
カーネルのコンパイル時に \fBCONFIG_FB\fP が定義されている場合、フレームバッファの情報が書かれる。
.TP
\fI/proc/filesystems\fP
カーネルが対応しているファイルシステムのテキスト形式のリスト。 カーネルに組み込まれてコンパイルされたファイルシステムと、
カーネルモジュールが現在ロードされているファイルシステムが列挙される (\fBfilesystems\fP(5) 参照)。 ファイルシステムに
"nodev" という印が付いている場合、 そのファイルシステムがマウントするためのブロックデバイスを 必要としないことを意味する (例えば、
仮想ファイルシステム、ネットワークファイルシステムなど)。
ちなみに、マウント時にファイルシステムが指定されず、 どうやってもファイルシステムの種類を判定できなかった際に、 このファイルを \fBmount\fP(8)
が使用するかもしれない。 その場合、このファイルに含まれるファイルシステムが試される (ただし、"nodev" の印がついたものは除く)。
.TP
\fI/proc/fs\fP
空のサブディレクトリ。
.TP
\fI/proc/ide\fP
このディレクトリは IDE バスをもつシステムに存在する。 各 IDE チャネルとそれに取り付けられている各デバイスごとにディレクトリがあり、
以下のファイルが含まれている。
.in +4n
.nf
cache バッファサイズ (KB)
capacity セクタ数
driver ドライバのバージョン
geometry 物理ジオメトリと論理ジオメトリ
identify 16 進数表記
media メディアのタイプ
model 製造者のモデル番号
settings ドライブの設定
smart_thresholds 16 進数表記
smart_values 16 進数表記
.fi
.in
\fBhdparm\fP(8) ユーティリティは、分かりやすい形式で この情報にアクセスするための手段を提供する。
.TP
\fI/proc/interrupts\fP
IO デバイス毎の CPU 別の割り込み回数の記録に使われる。 Linux 2.6.24 以降、少なくとも i386 と x86_64
アーキテクチャでは、 (デバイスと関連がない) システム内部の割り込みについても記録される。 システム内部の割り込みには、NMI
(nonmaskable interrupt), LOC (local timer interrupt) や、SMP システムでは TLB (TLB
flush interrupt), RES (rescheduling interrupt), CAL (remote function call
interrupt) などがある。 簡単に読むことのできるフォーマットで、ASCII で表記されている。
.TP
\fI/proc/iomem\fP
Linux 2.4 における I/O メモリマップ。
.TP
\fI/proc/ioports\fP
現在登録され使われている I/O ポート領域のリスト。
.TP
\fI/proc/kallsyms\fP (Linux 2.5.71 以降)
カーネルの外部シンボル定義を保持する。 \fBmodules\fP(X) 関係のツールがローダブルモジュールを動的にリンクしたり バインド (bind)
するのに使われる。 Linux 2.5.47 以前では、微妙に異なる書式の似たようなファイルが \fIksyms\fP という名前であった。
.TP
\fI/proc/kcore\fP
このファイルはシステムの物理メモリを表現しており、 ELF コアファイル形式 (core file format) で保持されている。
この擬似ファイルと strip されていないカーネルのバイナリ (\fI/usr/src/linux/vmlinux\fP) [訳注:
パッケージに依存する]) があれば、 GDB はカーネル内の任意のデータ構造の現在の状態を調べられる。
このファイルの大きさは物理メモリ (RAM) のサイズに 4KB を加えた値である。
.TP
\fI/proc/kmsg\fP
このファイルは \fBsyslog\fP(2) システムコールでカーネルメッセージを読み出す代りに使える。
プロセスがこのファイルを読むためにはスーパーユーザー権限が必要であり、 ファイルを読み出すのは 1 つのプロセスのみに限るべきである。
カーネルメッセージを記録するために、 \fBsyslog\fP(2) システムコールの機能を使う syslog プロセスが稼働している場合、
このファイルを読み出すべきではない。
このファイルの中の情報は \fBdmesg\fP(1) によって表示される。
.TP
\fI/proc/ksyms\fP (Linux 1.1.23\-2.5.47)
\fI/proc/kallsyms\fP を参照。
.TP
\fI/proc/loadavg\fP
このファイルの最初の 3 つのフィールドはロードアベレージの数値で、 1, 5, 15 分
あたりの実行キュー内 (state R) または ディスク I/O 待ち (state D) のジョブ数
を与える。 これは \fBuptime\fP(1) などのプログラムによって得られる値と同じである。
4 番目のフィールドはスラッシュ (/) で区切られた 2 つの数値から構成される。
この数値のうち最初のものは、現在実行可能なカーネルスケジュールエンティティ
(プロセス、スレッド) の数である。スラッシュの後の数値は、現在システム上に
存在するカーネルスケジュールエンティティの数である。 5 番目のフィールドは
システム上に最も最近生成されたプロセスの PID である。
.TP
\fI/proc/locks\fP
このファイルは現在のファイルロック (\fBflock\fP(2) と \fBfcntl\fP(2)) とリース (\fBfcntl\fP(2)) を表示する。
.TP
\fI/proc/malloc\fP (Linux 2.2 以前のみ)
.\" It looks like this only ever did something back in 1.0 days
コンパイルのときに \fBCONFIGDEBUGMALLOC\fP が定義されているときのみ、このファイルは存在する。
.TP
\fI/proc/meminfo\fP
このファイルはシステムのメモリ使用状況の統計情報を表示する。 \fBfree\fP(1) はこのファイルを使って、 そのシステムの
(物理メモリとスワップの両方の) 未使用と使用中のメモリ量と、 カーネルが使用している共有メモリとバッファの使用量を表示する。
このファイルの各行は、パラメータ名の後に、 コロン、 パラメータ値が続く。 最後に ("kB" などの) 計測単位がある場合もある。 以下のリストでは、
フィールド名と、フィールド値を読み込むのに必要なフォーマット指定子 (format specifier) について説明する。
特に注記がある場合を除くと、すべてのフィールドが少なくとも Linux 2.6.0 以降では存在する。
いくつかのフィールドは、カーネルでオプションが有効になっている場合にのみ表示される。 こうした依存関係についてはリスト内に注記がある。
.RS
.TP
\fIMemTotal\fP %lu
使用可能な RAM の総量 (つまり、 物理 RAM サイズからいくつかの予約ビットとカーネルのバイナリコードの分を引いた値)。
.TP
\fIMemFree\fP %lu
\fILowFree\fP+\fIHighFree\fP の合計値。
.TP
\fIBuffers\fP %lu
Relatively temporary storage for raw disk blocks that shouldn't get
tremendously large (20MB or so).
.TP
\fICached\fP %lu
ディスクから読み出したファイルのインメモリキャッシュ (ページキャッシュ)。 \fISwapCached\fP は含まれない。
.TP
\fISwapCached\fP %lu
一度スワップアウトされ、その後スワップインされたが、まだスワップファイルにも存在するメモリ。 (メモリが残り少ない場合、
これらのページは、すでにスワップファイルに存在するので、もう一度スワップアウトする必要がない。 これにより I/O が節約できる。)
.TP
\fIActive\fP %lu
最近使用されたメモリで、通常は本当に必要にならない限り回収されないメモリ。
.TP
\fIInactive\fP %lu
最近あまり使用されていないメモリ。 他の使用するために優先して回収すべきメモリ。
.TP
\fIActive(anon)\fP %lu (Linux 2.6.28 以降)
[後で記載する]
.TP
\fIInactive(anon)\fP %lu (Linux 2.6.28 以降)
[後で記載する]
.TP
\fIActive(file)\fP %lu (Linux 2.6.28 以降)
[後で記載する]
.TP
\fIInactive(file)\fP %lu (Linux 2.6.28 以降)
[後で記載する]
.TP
\fIUnevictable\fP %lu (Linux 2.6.28 以降)
(Linux 2.6.28 から 2.6.30 まででは \fBCONFIG_UNEVICTABLE_LRU\fP が必要であった。) [後で記載する]
.TP
\fIMlocked\fP %lu (Linux 2.6.28 以降)
(Linux 2.6.28 から 2.6.30 まででは \fBCONFIG_UNEVICTABLE_LRU\fP が必要であった。) [後で記載する]
.TP
\fIHighTotal\fP %lu
(Linux 2.6.19 以降では \fBCONFIG_HIGHMEM\fP が必要) highmem の総量。 highmem は物理メモリの 860MB
付近よりも上の部分のメモリ領域全体のことである。 highmem 領域はユーザー空間プログラムとページキャッシュで使用される。
カーネルはこのメモリにアクセスするのに小技を使っており、 lowmem よりもアクセスが遅くなる。
.TP
\fIHighFree\fP %lu
(Linux 2.6.19 以降では \fBCONFIG_HIGHMEM\fP が必要) 未使用の highmem 量。
.TP
\fILowTotal\fP %lu
(Starting with Linux 2.6.19, \fBCONFIG_HIGHMEM\fP is required.) Total amount
of lowmem. Lowmem is memory which can be used for everything that highmem
can be used for, but it is also available for the kernel's use for its own
data structures. Among many other things, it is where everything from
\fISlab\fP is allocated. Bad things happen when you're out of lowmem.
.TP
\fILowFree\fP %lu
(Linux 2.6.19 以降では \fBCONFIG_HIGHMEM\fP が必要) 未使用の lowmem 量。
.TP
\fIMmapCopy\fP %lu (Linux 2.6.29 以降)
(\fBCONFIG_MMU\fP が必要) [後で記載する]
.TP
\fISwapTotal\fP %lu
利用可能なスワップ空間の総量。
.TP
\fISwapFree\fP %lu
現在未使用のスワップ空間の量。
.TP
\fIDirty\fP %lu
ディスクに書き戻されるのを待っているメモリ。
.TP
\fIWriteback\fP %lu
現在ディスクに書き戻し中のメモリ。
.TP
\fIAnonPages\fP %lu (Linux 2.6.18 以降)
ユーザー空間ページテーブルにマッピングされているファイルと関連付けられていないページ。
.TP
\fIMapped\fP %lu
メモリマップされているファイル。 ライブラリなど。
.TP
\fIShmem\fP %lu (Linux 2.6.32 以降)
[後で記載する]
.TP
\fISlab\fP %lu
カーネル内のデータ構造体のキャッシュ。
.TP
\fISReclaimable\fP %lu (Linux 2.6.19 以降)
回収可能な \fISlab\fP。 キャッシュなど。
.TP
\fISUnreclaim\fP %lu (Linux 2.6.19 以降)
メモリ消費が激しい際でも回収できない \fISlab\fP。
.TP
\fIKernelStack\fP %lu (Linux 2.6.32 以降)
カーネルスタックに割り宛てられているメモリ量。
.TP
\fIPageTables\fP %lu (Linux 2.6.18 以降)
Amount of memory dedicated to the lowest level of page tables.
.TP
\fIQuicklists\fP %lu (Linux 2.6.27 以降)
(\fBCONFIG_QUICKLIST\fP が必要) [後で記載する]
.TP
\fINFS_Unstable\fP %lu (Linux 2.6.18 以降)
サーバに送信されたが、まだ永続的なストレージには書き込まれていない NFS ページ。
.TP
\fIBounce\fP %lu (Linux 2.6.18 以降)
Memory used for block device "bounce buffers".
.TP
\fIWritebackTmp\fP %lu (Linux 2.6.26 以降)
FUSE で一時的なライトバックバッファに使われているメモリ。
.TP
\fICommitLimit\fP %lu (Linux 2.6.10 以降)
Based on the overcommit ratio ('vm.overcommit_ratio'), this is the total
amount of memory currently available to be allocated on the system. This
limit is adhered to only if strict overcommit accounting is enabled (mode 2
in \fI/proc/sys/vm/overcommit_ratio\fP). The \fICommitLimit\fP is calculated
using the following formula:
CommitLimit =
([total RAM pages] \- [total huge TLB pages]) *
overcommit_ratio / 100 + [total swap pages]
For example, on a system with 1GB of physical RAM and 7GB of swap with a
\fIovercommit_ratio\fP of 30, this formula yields a \fICommitLimit\fP of 7.3GB.
For more details, see the memory overcommit documentation in the kernel
source file \fIDocumentation/vm/overcommit\-accounting\fP.
.TP
\fICommitted_AS\fP %lu
The amount of memory presently allocated on the system. The committed
memory is a sum of all of the memory which has been allocated by processes,
even if it has not been "used" by them as of yet. A process which allocates
1GB of memory (using \fBmalloc\fP(3) or similar), but touches only 300MB of
that memory will show up as using only 300MB of memory even if it has the
address space allocated for the entire 1GB. This 1GB is memory which has
been "committed" to by the VM and can be used at any time by the allocating
application. With strict overcommit enabled on the system (mode 2
\fI/proc/sys/vm/overcommit_memory\fP), allocations which would exceed the
\fICommitLimit\fP (detailed above) will not be permitted. This is useful if
one needs to guarantee that processes will not fail due to lack of memory
once that memory has been successfully allocated.
.TP
\fIVmallocTotal\fP %lu
vmalloc メモリ領域の総量。
.TP
\fIVmallocUsed\fP %lu
使用中の vmalloc 領域の量。
.TP
\fIVmallocChunk\fP %lu
vmalloc 領域の未使用の連続するブロックの最大サイズ。
.TP
\fIHardwareCorrupted\fP %lu (Linux 2.6.32 以降)
(\fBCONFIG_MEMORY_FAILURE\fP が必要) [後で記載する]
.TP
\fIAnonHugePages\fP %lu (Linux 2.6.38 以降)
(\fBCONFIG_TRANSPARENT_HUGEPAGE\fP が必要)
ユーザー空間ページテーブルにマッピングされているファイルと関連付けられていないページ。
.TP
\fIHugePages_Total\fP %lu
(\fBCONFIG_HUGETLB_PAGE\fP が必要) ヒュージページのプールサイズ。
.TP
\fIHugePages_Free\fP %lu
(\fBCONFIG_HUGETLB_PAGE\fP が必要) プール内の割り当てられていないヒュージページ数。
.TP
\fIHugePages_Rsvd\fP %lu (Linux 2.6.17 以降)
(\fBCONFIG_HUGETLB_PAGE\fP が必要) プールから割り当てが宣言されたが、まだ割り当てが行われていないヒュージページ数。
これらの予約ヒュージページにより、 アプリケーションがメモリフォールト時にヒュージページのプールからヒュージページが割り当てられることが保証される。
.TP
\fIHugePages_Surp\fP %lu (Linux 2.6.24 以降)
(\fBCONFIG_HUGETLB_PAGE\fP is required.) This is the number of huge pages in
the pool above the value in \fI/proc/sys/vm/nr_hugepages\fP. The maximum
number of surplus huge pages is controlled by
\fI/proc/sys/vm/nr_overcommit_hugepages\fP.
.TP
\fIHugepagesize\fP %lu
(\fBCONFIG_HUGETLB_PAGE\fP が必要) ヒュージページのサイズ。
.RE
.TP
\fI/proc/modules\fP
現在システムにロードされているモジュールのテキスト形式のリスト。 \fBlsmod\fP(8) も参照。
.TP
\fI/proc/mounts\fP
カーネル 2.4.19 より前では、このファイルは現在システムにマウントされている 全てのファイルシステムのリストであった。 Linux 2.4.19
でプロセス単位のマウント名前空間が導入されたことに伴い、 このファイルは \fI/proc/self/mounts\fP へのリンクとなった。
\fI/proc/self/mounts\fP はそのプロセス自身のマウント名前空間のマウントポイントのリストである。 このファイルのフォーマットは
\fBfstab\fP(5) に記述されている。
.TP
\fI/proc/mtrr\fP
Memory Type Range Registers。 詳細は、Linux カーネルソースファイル \fIDocumentation/mtrr.txt\fP
を参照すること。
.TP
\fI/proc/net\fP
さまざまなネットワークについての擬似ファイルで、 それぞれがネットワーク層の各種の状態を与える。 これらのファイルの内容は ASCII 形式なので、
\fBcat\fP(1) で読み出せる。 とはいえ基本コマンドの \fBnetstat\fP(8) はこれらのファイルの内容のよりすっきりとした表示を提供する。
.TP
\fI/proc/net/arp\fP
アドレス解決に使われるカーネルの ARP テーブルの ASCII 可読なダンプを保持している。 動的結合されたものと固定 (preprogrammed)
の両方の APP エントリを見ることができる。フォーマットは以下のとおり:
.nf
.in 8n
\f(CWIP address HW type Flags HW address Mask Device
192.168.0.50 0x1 0x2 00:50:BF:25:68:F3 * eth0
192.168.0.250 0x1 0xc 00:00:00:00:00:00 * eth0\fP
.fi
.in
ここで IP address はマシンの IPv4 アドレス、 HW type はそのアドレスの RFC\ 826 で定められているハードウェアの形式、
Flags は ARP 構造体 (\fI/usr/include/linux/if_arp.h\fP 内で定義されている) の内部フラグ、 HW
address はその IP アドレスにマップされているデータリンク層のアドレス (もしわかっていれば) である。
.TP
\fI/proc/net/dev\fP
擬似ファイル dev はネットワークデバイスの状態情報を含んでいる。 これは送受信したパケット数、エラーとコリジョン (collision) の回数、
その他の基本的な統計を与える。 これらは \fBifconfig\fP(8) がデバイスの状態を報告するのに使われる。 フォーマットは以下のとおり:
.nf
.in 1n
\f(CWInter\-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 2776770 11307 0 0 0 0 0 0 2776770 11307 0 0 0 0 0 0
eth0: 1215645 2751 0 0 0 0 0 0 1782404 4324 0 0 0 427 0 0
ppp0: 1622270 5552 1 0 0 0 0 0 354130 5669 0 0 0 0 0 0
tap0: 7714 81 0 0 0 0 0 0 7714 81 0 0 0 0 0 0\fP
.in
.fi
.\" .TP
.\" .I /proc/net/ipx
.\" No information.
.\" .TP
.\" .I /proc/net/ipx_route
.\" No information.
.TP
\fI/proc/net/dev_mcast\fP
\fI/usr/src/linux/net/core/dev_mcast.c\fP で定義されており、以下の形式である。
.nf
.in +5
indx interface_name dmi_u dmi_g dmi_address
2 eth0 1 0 01005e000001
3 eth1 1 0 01005e000001
4 eth2 1 0 01005e000001
.in
.fi
.TP
\fI/proc/net/igmp\fP
Internet Group Management Protocol (インターネットグループ管理プロトコル)。
\fI/usr/src/linux/net/core/igmp.c\fP で定義されている。
.TP
\fI/proc/net/rarp\fP
このファイルは \fIarp\fP と同じフォーマットで 逆アドレス解決サービス (reverse address lookup services)
\fBrarp\fP(8) に提供するために使われる現在の逆マップデータベースの内容を含んでいる。 RARP
がカーネルコンフィグレーションに設定されていなければ、 このファイルは存在しない。
.TP
\fI/proc/net/raw\fP
.\" .TP
.\" .I /proc/net/route
.\" No information, but looks similar to
.\" .BR route (8).
RAW ソケットテーブルのダンプを保持している。 ほとんどの情報はデバッグ以外では
使われない。 \&"sl" の値はソケットのカーネルハッシュスロット、
\&"local_address" はローカルアドレスとプロトコル番号のペア
[訳者追加: "rem_address" はリモートアドレスとプロトコル番号のペア]。
\&"st" はソケットの内部状態。 \&"tx_queue" と "rx_queue" はカーネルメモリを
消費している 送信/受信データキューのサイズ。 \&"tr" と "tm\->when" と
"rexmits" フィールドは RAW では使われていない。
\&"uid" フィールドはソケット生成者の実効 UID を保持している。
.TP
\fI/proc/net/snmp\fP
このファイルは SNMP エージェントが必要とする IP, ICMP, TCP, UDP 管理情報を ASCII データとして保持している。
.TP
\fI/proc/net/tcp\fP
TCP ソケットテーブルのダンプを保持している。 大部分の情報はデバッグ以外には
使われない。 sl はソケットのカーネルハッシュスロットの値、 \&"local_address"
はローカルアドレスとポート番号のペアである。 (ソケットが接続している場合は)
\&"rem_address" はリモートアドレスとポート番号の対である。 \&"st" はソケット
の内部状態である。 \&"tx_queue" と "rx_queue" はカーネルメモリを消費している
送信/受信データキューのサイズ。 \&"tr" と "tm\->when" と "rexmits"
フィールドはソケット状態のカーネル 内部情報を保持しているが、
これらはデバッグのときにしか役に立たない。 \&"uid" フィールドはソケット
生成者の実効 UID を保持している。
.TP
\fI/proc/net/udp\fP
UDP ソケットテーブルのダンプを保持している。 大部分の情報はデバッグ以外には
使われない。 sl はソケットのカーネルハッシュスロットの値、 "local_address"
はローカルアドレスとポート番号のペアである。 (ソケットが接続している場合は)
"rem_address" はリモートアドレスとポート番号のペアである。 "st" はソケットの
内部状態である。 "tx_queue" と "rx_queue" はカーネルメモリを消費している
送信/受信データキューのサイズ。 "tr" と "tm\->when" と "rexmits"
フィールドは UDP では使われていない。 "uid" フィールドはソケット生成者の
実効 UID を保持している。 フォーマットは以下のとおり:
.nf
.in 1n
\f(CWsl local_address rem_address st tx_queue rx_queue tr rexmits tm\->when uid
1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0\fP
.in
.fi
.TP
\fI/proc/net/unix\fP
UNIX ドメインソケットのリスト。 フォーマットは以下のとおり:
.nf
.sp .5
\f(CWNum RefCount Protocol Flags Type St Path
0: 00000002 00000000 00000000 0001 03
1: 00000001 00000000 00010000 0001 01 /dev/printer\fP
.sp .5
.fi
ここで、Num はカーネルのテーブルスロット数、 RefCount はソケットを使用して
いるユーザー数、 Protocol はいまのところいつも 0 で、Flags はソケットの状態
を保持している カーネル内部のフラグである。 Type はいまのところいつも 1
(UNIX ドメインのデータグラムソケットは、現在のカーネルではサポートされていない
[訳注: 2.0.34 ではサポートされているようだ])。
St はソケットの内部状態で、Path は(もしあれば) ソケットのパス名である。
.TP
\fI/proc/partitions\fP
各パーティションのメジャー番号とマイナー番号が書かれている。 さらに、 1024 バイトブロック数とパーティション名も書かれている。
.TP
\fI/proc/pci\fP
カーネルの初期化時に見つかったすべての PCI デバイスのリストと その設定。
.\" FIXME /proc/sched_debug
.\" .TP
.\" .IR /proc/sched_debug " (since Linux 2.6.23)"
.\" See also /proc/[pid]/sched
このファイルは非推奨であり、新しい PCI 用の \fI/proc\fP インターフェイス (\fI/proc/bus/pci\fP) を使うこと。
このファイルは Linux 2.2 でオプションになった (カーネルのコンパイル時に \fBCONFIG_PCI_OLD_PROC\fP
をセットすると利用可能であった)。 Linux 2.4 で再びオプションなしで有効に戻った。 さらに、Linux 2.6 で非推奨となり
(\fBCONFIG_PCI_LEGACY_PROC\fP をセットするとまだ利用可能であった)、 最終的に Linux 2.6.17
以降で完全に削除された。
.TP
\fI/proc/profile\fP (Linux 2.4 以降)
このファイルは、 カーネルが \fIprofile=1\fP コマンドラインオプションで起動された場合にのみ存在する。 このファイルは、
カーネルのプロファイリング情報を \fBreadprofile\fP(1) を使って読み込めるバイナリ形式で公開する。 このファイルに
(例えば、空の文字列を) 書き込むと、プロファイリングカウンターがリセットされる。 いくつかのアーキテクチャでは、 サイズ \fIsizeof(int)\fP
のバイナリ整数である「プロファイリング倍率」を書き込むとプロファイリングの割り込み頻度を設定できる。
.TP
\fI/proc/scsi\fP
\fIscsi\fP 中間レベル擬似ファイルといくつかの SCSI 低レベルドライバの ディレクトリを含むディレクトリ。 これらのファイルは ASCII
で表現されているので \fBcat\fP(1) で読める。
いくつかのファイルは書き込み可能で、サブシステムの設定を変更したり、 特定の機能をオン/オフすることができる。
.TP
\fI/proc/scsi/scsi\fP
カーネルが知っているすべての SCSI デバイスのリスト。 このリストは起動時に (コンソールで) 見られるものとほぼ同じである。 scsi
は現在のところ \fIadd\-single\-device\fP コマンドのみをサポートしている。 これによりルート (root)
は既知のデバイスリストへ活線挿抜 (hotplugged) デバイスを加えることができる。
次のコマンドを実行すると、
.in +4n
.nf
echo \(aqscsi add\-single\-device 1 0 5 0\(aq > /proc/scsi/scsi
.fi
.in
ホストアダプタ scsi1 は SCSI チャネル 0 で ID 5 LUN 0 のデバイスを探す。 もしこのアドレスに既知のデバイスがあるか、
不正なアドレスであったならばエラーが返る。
.TP
\fI/proc/scsi/[drivername]\fP
いまのところ \fI[drivername]\fP は NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx,
buslogic, eata_dma, eata_pio, fdomain, in2000, pas16, qlogic, scsi_debug,
seagate, t128, u15\-24f, ultrastore, wd7000 のどれかである。 少なくとも 1 つの SCSI
ホストバスアダプタ (HBA) に ドライバが割り当てられていると、そのドライバに対応したディレクトリが現れる。 それぞれのディレクトリには、
登録されたホストアダプタに対応してファイルが作られる。 このファイルの名前は、システムの初期化の際に ホストアダプタに割り当てられた番号になる。
これらのファイルを読めばドライバとホストアダプタの設定や 統計などを見ることができる。
これらのファイルへの書き込みはホストアダプタごとに異なる動作を引き起こす。 たとえば \fIlatency\fP と \fInolatency\fP
コマンドを用いると、 ルート (root、スーパーユーザー) は eata_dma ドライバの隠し測定コードの オン/オフを切り替えることができる。
また \fI lockup\fP と \fIunlock\fP コマンドを用いると、ルートは scsi_debug ドライバがシミュレートするバスロックアップ
(bus lockup) を 制御することができる。
.TP
\fI/proc/self\fP
このディレクトリはプロセスに (プロセス自身の) \fI/proc\fP ファイルシステムへのアクセスを参照させる。 これは \fI/proc\fP 内の
(このプロセスの) プロセス ID が名前となっている ディレクトリと全く同一である。
.TP
\fI/proc/slabinfo\fP
Linux 2.6.16 以降では、 カーネル設定オプション \fBCONFIG_SLAB\fP が有効の場合にのみ、このファイルは存在する。
カーネルキャッシュの情報。 \fI/proc/slabinfo\fP のフィールドは以下のとおり。
.in +4n
.nf
cache\-name
num\-active\-objs
total\-objs
object\-size
num\-active\-slabs
total\-slabs
num\-pages\-per\-slab
.fi
.in
詳細は \fBslabinfo\fP(5) を参照すること。
.TP
\fI/proc/stat\fP
カーネル/システムの統計。 アーキテクチャによって異なる。 共通エントリには以下のものが含まれる。
.RS
.TP
\fIcpu 3357 0 4313 1362393\fP
.\" 1024 on Alpha and ia64
各種状態で消費された時間の合計値。 時間は USER_HZ を単位として計測される (ほとんどのアーキテクチャでは USER_HZ は 1/100
秒で、 正しい値は \fIsysconf(_SC_CLK_TCK)\fP を使って取得できる)。
.RS
.TP
\fIuser\fP
(1) ユーザーモードで消費した時間。
.TP
\fInice\fP
(2) 低い優先度 (nice) のユーザーモードで消費した時間。
.TP
\fIsystem\fP
(3) システムモードで消費した時間。
.TP
\fIidle\fP
.\" FIXME Actually, the following info about the /proc/stat 'cpu' field
.\" does not seem to be quite right (at least in 2.6.12 or 3.6):
.\" the idle time in /proc/uptime does not quite match this value
(4) タスク待ち (idle task) で消費した時間。 この値は擬似ファイル \fI/proc/uptime\fP の 2 番目のエントリの値を
USER_HZ 倍した値になるはずである。
.TP
\fIiowait\fP (Linux 2.5.41 以降)
(5) I/O の完了待ちの時間。
.TP
\fIirq\fP (Linux 2.6.0\-test4 以降)
(6) 割り込みの処理に使った時間。
.TP
\fIsoftirq\fP (Linux 2.6.0\-test4 以降)
(7) ソフト割り込みの処理に使った時間。
.TP
\fIsteal\fP (Linux 2.6.11 以降)
(8) 盗まれた時間 (stolen time)。仮想化環境での動作時に他のオペレーティングシステムにより消費された時間である。
.TP
\fIguest\fP (Linux 2.6.24 以降)
.\" See Changelog entry for 5e84cfde51cf303d368fcb48f22059f37b3872de
(9) Linux カーネルの制御下のゲストオペレーティングシステムの仮想 CPU の 実行に消費された時間。
.TP
\fIguest_nice\fP (Linux 2.6.33 以降)
.\" commit ce0e7b28fb75cb003cfc8d0238613aaf1c55e797
(10) nice が適用されたゲスト (Linux カーネルの制御下のゲストオペレーティングシステムの仮想 CPU) の 実行に消費された時間。
.RE
.TP
\fIpage 5741 1808\fP
システムが (ディスクから) ページイン/ページアウトしたページ数。
.TP
\fIswap 1 0\fP
スワップイン/スワップアウトされたページ数。
.TP
.\" FIXME The following is not the full picture for the 'intr' of
.\" /proc/stat on 2.6:
\fIintr 1462898\fP
この行はシステム起動時以降に処理された割り込みの回数を示す。 最初の欄は処理された割り込み全ての合計であり、それ以降の欄は
個々の割り込みについての合計数である。
.TP
\fIdisk_io: (2,0):(31,30,5764,1,2) (3,0):\fP...
(メジャー番号, ディスクインデックス番号):(情報なし (noinfo), 読み込み回数, 読み込みブロック数, 書き出し回数, 書き出しブロック数)
.br
(Linux 2.4 のみ)
.TP
\fIctxt 115315\fP
コンテクスト・スイッチの延べ回数。
.TP
\fIbtime 769041601\fP
起動時刻、紀元 (Epoch; 1970\-01\-01 00:00:00 +0000 (UTC)) からの秒数。
.TP
\fIprocesses 86031\fP
システム起動時からの延べフォーク (fork) 数。
.TP
\fIprocs_running 6\fP
実行中状態のプロセス数 (Linux 2.5.45 以降)。
.TP
\fIprocs_blocked 2\fP
I/O 完了待ちで停止 (blocked) しているプロセス数 (Linux 2.5.45 以降)。
.RE
.TP
\fI/proc/swaps\fP
使用中のスワップ領域。 \fBswapon\fP(8) も参照すること。
.TP
\fI/proc/sys\fP
このディレクトリ (1.3.57 以降に存在) はカーネル変数に対応するいくつかの
ファイルとサブディレクトリを含む。 これらの変数は読み出し可能である。
また場合によっては \fI/proc\fP ファイルシステムや、 (非推奨の) システムコール
\fBsysctl\fP(2) を用いて書き換えることもできる。
.TP
\fI/proc/sys/abi\fP (Linux 2.4.10 以降)
.\" On some systems, it is not present.
このディレクトリにはアプリケーションのバイナリ情報が入ったファイルが置かれる。 更に詳しい情報は、 Linux カーネルソースファイル
\fIDocumentation/sysctl/abi.txt\fP を参照すること。
.TP
\fI/proc/sys/debug\fP
このディレクトリは空の場合もある。
.TP
\fI/proc/sys/dev\fP
このディレクトリにはデバイス特有の情報 (たとえば \fIdev/cdrom/info\fP) が含まれる。
このディレクトリが空になっているシステムもある。
.TP
\fI/proc/sys/fs\fP
このディレクトリには、ファイルシステムに関連するカーネル変数用の
ディレクトリとサブディレクトリが含まれる。
.TP
\fI/proc/sys/fs/binfmt_misc\fP
このディレクトリ以下のファイルについてのドキュメントは、 Linux カーネルソースの \fIDocumentation/binfmt_misc.txt\fP
にある。
.TP
\fI/proc/sys/fs/dentry\-state\fP (Linux 2.2 以降)
このファイルには、ディレクトリキャッシュ (dcache) の状態に関する情報が 入っている。ファイルには、 \fInr_dentry\fP,
\fInr_unused\fP, \fIage_limit\fP (秒単位の age), \fIwant_pages\fP (システムがリクエストしたページ数),
ダミーの 2 つの値、 という 6 つの数字が書かれている。
.RS
.IP * 2
\fInr_dentry\fP は割り当てられた dentry (dcache エントリ) の数である。 このフィールドは Linux 2.2
では使用されない。
.IP *
\fInr_unused\fP は未使用の dentry 数である。
.IP *
.\" looks like this is unused in kernels 2.2 to 2.6
\fIage_limit\fP は、メモリが不足している場合に次に dcache entry を再要求できるように なるまでの残り時間 (秒数) である。
.IP *
.\" looks like this is unused in kernels 2.2 to 2.6
\fIwant_pages\fP は、カーネルが shrink_dcache_pages() を呼び出したが dcache がまだ縮小されていない場合に、0
以外の値となる。
.RE
.TP
\fI/proc/sys/fs/dir\-notify\-enable\fP
このファイルは \fBfcntl\fP(2) に記述されている \fIdnotify\fP インターフェースをシステム全体で無効にしたり有効にしたりする。
このファイルに値 0 が書かれている場合はインターフェースが無効になり、 値 1 の場合は有効になる。
.TP
\fI/proc/sys/fs/dquot\-max\fP
このファイルにはキャッシュされるディスク quota エントリの最大数が書かれている。 (2.4 系の)
システムの中には、このファイルが存在しないものもある。 キャッシュされるディスク quota エントリの空きが非常に少なく、
とても多くのシステムユーザーが同時に存在する場合、 この制限を上げるといいかもしれない。
.TP
\fI/proc/sys/fs/dquot\-nr\fP
このファイルには割り当てられているディスク quota のエントリ数と、 空いているディスク quota のエントリ数が書かれている。
.TP
\fI/proc/sys/fs/epoll\fP (Linux 2.6.28 以降)
このディレクトリには、ファイル \fImax_user_watches\fP がある。 これらは、 \fIepoll\fP
インタフェースが消費するカーネルメモリ量を制限するのに使用できる。 詳細は \fBepoll\fP(7) を参照。
.TP
\fI/proc/sys/fs/file\-max\fP
このファイルは、 システム全体でプロセスがオープンできるファイル数の上限を定義する (\fBsetrlimit\fP(2) も参照;
\fBsetrlimit\fP(2) を使うと、 オープンできるファイル数のプロセス毎の上限 \fBRLIMIT_NOFILE\fP を設定できる)。
ファイルハンドルを使い果たしたというエラーメッセージ ("VFS: file\-max limit <number> reached"
を探すとよい) がカーネルログに大量に出る場合は、以下のようにこの値を増加させてみるとよい。
.br
.br
.nf
\f(CW echo 100000 > /proc/sys/fs/file\-max\fP
.fi
\fIfile\-max\fP に書かれている値は、カーネル定数 \fBNR_OPEN\fP に制限される。
特権プロセス (\fBCAP_SYS_ADMIN\fP) は \fIfile\-max\fP 上限を上書きできる。
.TP
\fI/proc/sys/fs/file\-nr\fP
This (read\-only) file contains three numbers: the number of allocated file
handles (i.e., the number of files presently opened); the number of free
file handles; and the maximum number of file handles (i.e., the same value
as \fI/proc/sys/fs/file\-max\fP). If the number of allocated file handles is
close to the maximum, you should consider increasing the maximum. Before
Linux 2.6, the kernel allocated file handles dynamically, but it didn't free
them again. Instead the free file handles were kept in a list for
reallocation; the "free file handles" value indicates the size of that
list. A large number of free file handles indicates that there was a past
peak in the usage of open file handles. Since Linux 2.6, the kernel does
deallocate freed file handles, and the "free file handles" value is always
zero.
.TP
\fI/proc/sys/fs/inode\-max\fP (Linux 2.2 までにのみ存在)
このファイルには、メモリ内 inode の最大値が書かれている。 この値は \fIfile\-max\fP の値の 3\-4 倍にすべきである。 これは
\fIstdin\fP, \fIstdout\fP, ネットワークソケットを扱うにも inode が必要なためである。 日常的に inode
を使い果たしている場合は、この値を増やす必要がある。
Linux 2.4 以降では、 inode 数の静的な上限はなくなり、 このファイルは削除された。
.TP
\fI/proc/sys/fs/inode\-nr\fP
このファイルには、 \fIinode\-state\fP の最初の 2 つの値が書かれている。
.TP
\fI/proc/sys/fs/inode\-state\fP
This file contains seven numbers: \fInr_inodes\fP, \fInr_free_inodes\fP,
\fIpreshrink\fP, and four dummy values (always zero).
.\" This can be slightly more than
.\" .I inode-max
.\" because Linux allocates them one page full at a time.
\fInr_inodes\fP is the number of inodes the system has allocated.
\fInr_free_inodes\fP represents the number of free inodes.
\fIpreshrink\fP is nonzero when the \fInr_inodes\fP > \fIinode\-max\fP and the
system needs to prune the inode list instead of allocating more; since Linux
2.4, this field is a dummy value (always zero).
.TP
\fI/proc/sys/fs/inotify\fP (Linux 2.6.13 以降)
このディレクトリには、ファイル \fImax_queued_events\fP, \fImax_user_instances\fP, and
\fImax_user_watches\fP がある。これらは、 \fIinotify\fP インタフェースが消費するカーネルメモリ量を制限するのに利用できる。
詳細は \fBinotify\fP(7) を参照。
.TP
\fI/proc/sys/fs/lease\-break\-time\fP
このファイルは、ファイルを保持しているプロセスに対して カーネルがシグナルを送り、
他のプロセスがそのファイルをオープンするのを待っていることを通知してから、 そのプロセスに対してカーネルがファイルのリース (lease, 貸し出し)
(\fBfcntl\fP(2) を参照) を許す猶予期間を指定する。 リースホルダ (lease holder: ファイルの貸し出しを受けているプロセス)
が 猶予期間中にリースを削除するか階級を低くしない場合、 カーネルはファイルのリースを強制的に止める。
.TP
\fI/proc/sys/fs/leases\-enable\fP
このファイルはシステム全体でのファイルリース (\fBfcntl\fP(2) を参照) を有効または無効にする。 ファイルに値 0
が書き込まれている場合、リースは無効である。 0 以外の場合にはリースは有効である。
.TP
\fI/proc/sys/fs/mqueue\fP (Linux 2.6.6 以降)
このディレクトリにはファイル \fImsg_max\fP, \fImsgsize_max\fP, and \fIqueues_max\fP がある。これらは POSIX
メッセージキューで使用されるリソースの 制御を行う。 詳細は \fBmq_overview\fP(7) を参照。
.TP
\fI/proc/sys/fs/overflowgid\fP と \fI/proc/sys/fs/overflowuid\fP
これらのファイルにより、ユーザーは固定 UID と固定 GID の値を変更できる。 デフォルトは 65534 である。 Linux の UID と
GID は 32 ビットであるが、 16 ビットの UID と GID しかサポートしないファイルシステムもある。
このようなファイルシステムが書き込みを許可してマウントされた場合、 65535 を超える UID と GID は、
ディスクに書き込まれる前にオーバーフロー値に変換される。
.TP
\fI/proc/sys/fs/pipe\-max\-size\fP (Linux 2.6.35 以降)
このファイルの値により、 \fBfcntl\fP(2) の \fBF_SETPIPE_SZ\fP 操作で増やすことができるパイプ容量の上限値が定義される。
この上限は非特権プロセスにのみ適用される。 このファイルのデフォルト値は 1,048,576 である。 このファイルに設定した値は切り上げられて、
実装側で利用するのに都合のよい値に変更される場合がある。 切り上げられた値を確認するには、 値を設定した後でこのファイルの内容を表示すればよい。
このファイルに設定できる最小値はシステムのページサイズである。
.TP
\fI/proc/sys/fs/protected_hardlinks\fP (Linux 3.6 以降)
.\" commit 800179c9b8a1e796e441674776d11cd4c05d61d7
このファイルの値が 0 の場合、 ハードリンクの作成には何の制限も適用されない (すなわち、 Linux 3.6 より前の伝統的な動作である)。
このファイルの値が 1 の場合、以下の条件のいずれか一つが成立する場合にのみ、 リンク先のファイルへのハードリンクが作成できる。
.RS
.IP * 3
呼び出し元が \fBCAP_FOWNER\fP ケーパビリティを持っている。
.IP *
そのリンクを作成中のプロセスのファイルシステム UID が、 リンク先ファイルの所有者 (UID) と一致する (\fBcredentials\fP(7)
に説明があるが、 通常、 プロセスのファイルシステム UID はプロセスの実効 UID と同じである)。
.IP *
以下の条件が全て成立する。
.RS 4
.IP \(bu 3
リンク先が通常のファイルである。
.IP \(bu
リンク先ファイルで set\-user\-ID 許可ビットが有効になっていない。
.IP \(bu
リンク先ファイルで、 許可ビット set\-group\-ID と group\-executable が同時に有効になっていない。
.IP \(bu
呼び出し元は、 リンク先ファイルの読み出し、書き込み許可を持っている
(ファイルの許可マスクで許可されているか、適切なケーパビリティを持っているかは問わない)。
.RE
.RE
.IP
The default value in this file is 0. Setting the value to 1 prevents a
longstanding class of security issues caused by hard\-link\-based
time\-of\-check, time\-of\-use races, most commonly seen in world\-writable
directories such as \fI/tmp\fP. The common method of exploiting this flaw is
to cross privilege boundaries when following a given hard link (i.e., a root
process follows a hard link created by another user). Additionally, on
systems without separated partitions, this stops unauthorized users from
"pinning" vulnerable set\-user\-ID and set\-group\-ID files against being
upgraded by the administrator, or linking to special files.
.TP
\fI/proc/sys/fs/protected_symlinks\fP (Linux 3.6 以降)
.\" commit 800179c9b8a1e796e441674776d11cd4c05d61d7
このファイルの値が 0 の場合、 以下のシンボリックリンクを辿る際に何の制限も適用されない (すなわち、 Linux 3.6
より前の伝統的な動作である)。 このファイルの値が 1 の場合、 以下の状況においてのみシンボリックリンクが辿られる。
.RS
.IP * 3
そのリンクを辿っているプロセスのファイルシステム UID が、 シンボリックリンクの所有者 (UID) と一致する (\fBcredentials\fP(7)
に説明があるが、 通常、 プロセスのファイルシステム UID はプロセスの実効 UID と同じである)。
.IP *
そのリンクが world\-writable の sticky ビットがセットされたディレクトリではない。
.IP *
シンボリックリンクとその親ディレクトリが同じ所有者 (UID) である。
.RE
.IP
システムコールが上記の制約によりシンボリックリンクを辿れなかった場合は、 \fIerrno\fP にエラー \fBEACCES\fP が設定される。
.IP
The default value in this file is 0. Setting the value to 1 avoids a
longstanding class of security issues based on time\-of\-check, time\-of\-use
races when accessing symbolic links.
.TP
\fI/proc/sys/fs/suid_dumpable\fP (Linux 2.6.13 以降)
.\" The following is based on text from Documentation/sysctl/kernel.txt
このファイルの値により、set\-user\-ID されたバイナリや、 保護がかかった (protected) バイナリ / tainted な
(汚染された; ライセンスがカーネルと適合しない) バイナリに対して、コアダンプファイルを 生成するかどうかが決定される。 以下の
3つの値を指定することができる:
.RS
.TP
\fI0\ (default)\fP
この値を指定すると、以前と同じ (Linux 2.6.13 より前の) 動作をする。 (\fBseteuid\fP(2), \fBsetgid\fP(2)
などを呼び出すことや、set\-user\-ID や set\-group\-ID されたプログラムを 実行することで) 資格情報 (credentials)
が変更されているプロセスや、 プロセスの実行バイナリの読み出し許可がないプロセスに対して、 コアダンプを生成しない。
.TP
\fI1\ ("debug")\fP
すべてのプロセスで、可能であればコアダンプを行う。 コアダンプファイルの所有者は、ダンプを行うプロセスのファイルシステム UID
となり、セキュリティ上の考慮は行われない。 この値は、システムデバッグの場面だけを想定して設けられている。 ptrace のチェックも行われない。
.TP
\fI2\ ("suidsafe")\fP
通常はダンプされないようなバイナリ (上記の "0" 参照) を root だけが読み出し可能な形でダンプする。
この場合、ユーザはそのコアダンプファイルを削除することはできるが、 読むことはできない。 セキュリティ上の理由から、このモードのコアダンプでは、
既存のダンプファイルや他のファイルを上書きすることはない。 このモードは、管理者が通常の環境で問題を解析しようとする際に 適している。
.IP
.\" 9520628e8ceb69fa9a4aee6b57f22675d9e1b709
.\" 54b501992dd2a839e94e76aa392c392b55080ce8
さらに、 Linux 3.6 以降では、 \fI/proc/sys/kernel/core_pattern\fP
は絶対パス名かパイプコマンドでなければならない。 \fBcore\fP(5) に詳しい説明がある。 \fIcore_pattern\fP
がこれらのルールに合致しない場合は、 警告がカーネルログに書き込まれ、 コアダンプは生成されない。
.RE
.TP
このファイルはスーパブロックの値を制御する。
この値はカーネルがマウントできるファイルシステムの最大値になる。 現在、 \fIsuper\-max\fP で許可されているファイルシステム数以上に
マウントする必要がある場合は、この値を増加させるだけでよい。
.TP
\fI/proc/sys/fs/super\-nr\fP
このファイルには現在マウントされているファイルシステム数が書かれている。
.TP
\fI/proc/sys/kernel\fP
このディレクトリには、以下で説明する様々なカーネルパラメータを 制御するためのファイルが配置されている。
.TP
\fI/proc/sys/kernel/acct\fP
このファイルには 3 つの値が含まれている: \fIhighwater\fP, \fIlowwater\fP, \fIfrequency\fP である。
BSD\-style process accounting が有効になっている場合、 これら 3 つの値が動作を制御する。
ログファイルのあるファイルシステムの空き領域が \fIlowwater\fP パーセント以下になった場合は、ログ記録を一時停止する。 空き領域が
\fIhighwater\fP パーセント以上になった場合に、ログ記録を再開する。 \fIfrequency\fP はカーネルが空き領域のチェックをする頻度である
(単位は秒)。 デフォルトの値は、4, 2, 30 である。 つまり、空き領域が 2% 以下になるとログ記録を一時停止し、 空き領域が 4%
以上となったときに再開する。 空き領域についての情報は 30 秒間有効である点に注意すること。
.TP
\fI/proc/sys/kernel/cap_last_cap\fP (Linux 3.2 以降)
\fBcapabilities\fP(7) 参照。
.TP
\fI/proc/sys/kernel/cap\-bound\fP (Linux 2.2 to 2.6.24 以降)
\fI/proc/sys/kernel/cap\-bound\fP このファイルにはカーネルの \fIcapability bounding set\fP (符号付き
10 進数表現) の値が書かれている。 \fBexecve\fP(2) 中は、このセットとプロセスに許可されている権限の AND がとられる。 Linux
2.6.25 以降では、システム全体のケーパビリティバウンディングセットは なくなり、スレッド単位のバウンディングセットに置き換えられた。
\fBcapabilities\fP(7) を参照。
.TP
\fI/proc/sys/kernel/core_pattern\fP
\fBcore\fP(5) 参照。
.TP
\fI/proc/sys/kernel/core_uses_pid\fP
\fBcore\fP(5) 参照。
.TP
\fI/proc/sys/kernel/ctrl\-alt\-del\fP
このファイルはキーボードの Ctrl\-Alt\-Del の扱いを制御する。 このファイルにある値が 0 の場合、 Ctrl\-Alt\-Del が捕捉されると
\fBinit\fP(8) プログラムに送られて、正しく再起動される。 値が 0 より大きい場合、Vulcan Nerve Pinch (tm)
に反応して、 Linux はダーティバッファを同期させることなく、すぐに再起動を行う。 注意: プログラム (dosemu など) に "raw"
モードのキーボードがある場合、 ctrl\-alt\-del はカーネルの tty レイヤーに到達する前に プログラムに遮断され、
プログラムに送られてどのように扱うかが決められる。
.TP
\fI/proc/sys/kernel/dmesg_restrict\fP (Linux 2.6.37 以降)
.\" commit 620f6e8e855d6d447688a5f67a4e176944a084e8
このファイルの値により誰がカーネル syslog の内容を参照できるかが決定される。 このファイルの値が 0 であれば、制限はなくなる。 値が 1
であれば、 特権ユーザーだけがカーネル syslog を読み出すことができる
(詳細は \fBsyslog\fP(2) を参照)。 Linux 3.4 以降では \fBCAP_SYS_ADMIN\fP
ケーパビリティを持ったユーザーだけがこのファイルの値を変更できる。
.TP
\fI/proc/sys/kernel/domainname\fP と \fI/proc/sys/kernel/hostname\fP
これらのファイルは、コマンド \fBdomainname\fP(1), \fBhostname\fP(1) と全く同じ方法で、 マシンの NIS/YP
ドメイン名とホスト名の設定に使える。 すなわち
.in +4n
.nf
#\fB echo \(aqdarkstar\(aq > /proc/sys/kernel/hostname\fP
#\fB echo \(aqmydomain\(aq > /proc/sys/kernel/domainname\fP
.fi
.in
は、以下と同じ効果がある。
.in +4n
.nf
#\fB hostname \(aqdarkstar\(aq\fP
#\fB domainname \(aqmydomain\(aq\fP
.fi
.in
注意: 典型的な darkstar.frop.org という名前には、 ホスト名 "darkstar" と DNS (Internet Domain
Name Server) ドメイン名 "frop.org" が含まれているが、DNS ドメイン名と NIS (Network Information
Service) または YP (Yellow Pages) のドメイン名を混同してはならない。 一般にこれら 2 つのドメイン名は異なる。
詳細な議論は、 \fBhostname\fP(1) の man ページを参照すること。
.TP
\fI/proc/sys/kernel/hotplug\fP
このファイルはホットプラグ・ポリシー・エージェントのパスが書かれている。 このファイルのデフォルト値は \fI/sbin/hotplug\fP である。
.TP
\fI/proc/sys/kernel/htab\-reclaim\fP
(PowerPC のみ) このファイルを 0 以外の値に設定すると、 PowerPC htab (カーネルソースファイル
\fIDocumentation/powerpc/ppc_htab.txt\fP 参照) を、システムがアイドルループになるたびに切り詰める。
.TP
\fI/proc/sys/kernel/kptr_restrict\fP (Linux 2.6.38 以降)
.\" 455cd5ab305c90ffc422dd2e0fb634730942b257
.\" commit 411f05f123cbd7f8aa1edcae86970755a6e2a9d9
.\" commit 620f6e8e855d6d447688a5f67a4e176944a084e8
The value in this file determines whether kernel addresses are exposed via
\fI/proc\fP files and other interfaces. A value of 0 in this file imposes no
restrictions. If the value is 1, kernel pointers printed using the \fI%pK\fP
format specifier will be replaced with zeros unless the user has the
\fBCAP_SYSLOG\fP capability. If the value is 2, kernel pointers printed using
the \fI%pK\fP format specifier will be replaced with zeros regardless of the
user's capabilities. The initial default value for this file was 1, but the
default was changed to 0 in Linux 2.6.39. Since Linux 3.4, only users with
the \fBCAP_SYS_ADMIN\fP capability can change the value in this file.
.TP
\fI/proc/sys/kernel/l2cr\fP
(PowerPC のみ) このファイルには G3 プロセッサボードの L2 キャッシュを制御するフラグが含まれる。 0 の場合、キャッシュは無効になる。
0 以外の場合は有効になる。
.TP
\fI/proc/sys/kernel/modprobe\fP
このファイルには、カーネルモジュールローダへのパスが含まれる。 デフォルトの値は \fI/sbin/modprobe\fP
である。このファイルは、\fBCONFIG_MODULES\fP オプション (Linux 2.6.26 以前では \fBCONFIG_KMOD\fP)
を有効にしてカーネルが作成されている場合にのみ存在する。 このファイルについては、Linux カーネルソースファイル
\fIDocumentation/kmod.txt\fP (カーネル 2.4 以前のみに存在) に記述されている。
.TP
\fI/proc/sys/kernel/modules_disabled\fP (Linux 2.6.31 以降)
.\" 3d43321b7015387cfebbe26436d0e9d299162ea1
.\" From Documentation/sysctl/kernel.txt
他のモジュールが有効になったカーネルへのモジュールのロードが許可されるかを示すオン・オフ値である。 デフォルト値はオフ (0) だが、 オン (1)
に設定することができる。 一度オンにすると、 モジュールをロードすることもアンロードすることもできなくなり、 この値をオフに戻すこともできない。
このファイルが存在するのは、 カーネルが \fBCONFIG_MODULES\fP オプションを有効にしてコンパイルされている場合だけである。
.TP
\fI/proc/sys/kernel/msgmax\fP (Linux 2.2 以降)
このファイルは、System V メッセージキューに書き込まれる 1 つのメッセージの 最大バイト数を、システム全体で制限する。
.TP
\fI/proc/sys/kernel/msgmni\fP (Linux 2.4 以降)
このファイルはメッセージキュー識別子の最大数をシステム全体で制限する。
.TP
\fI/proc/sys/kernel/msgmnb\fP (Linux 2.2 以降)
このファイルは、 \fImsg_qbytes\fP の設定を初期化するシステム全体のパラメータで
ある。 \fImsg_qbytes\fP は以降で作成されるメッセージキューで使われる。
\fImsg_qbytes\fP 設定では、メッセージキューに書き込まれる最大バイト数を指定する。
.TP
\fI/proc/sys/kernel/ngroups_max\fP (Linux 2.6.4 以降)
このファイルは、プロセスグループのメンバー数の上限値を表示する読み出し専用のファイルである。
.TP
\fI/proc/sys/kernel/ostype\fP と \fI/proc/sys/kernel/osrelease\fP
これらのファイルは文字列 \fI/proc/version\fP の各部分を与える。
.TP
\fI/proc/sys/kernel/overflowgid\fP と \fI/proc/sys/kernel/overflowuid\fP
これらのファイルは \fI/proc/sys/fs/overflowgid\fP と \fI/proc/sys/fs/overflowuid\fP
を複製したものである。
.TP
\fI/proc/sys/kernel/panic\fP
このファイルはカーネル変数 \fIpanic_timeout\fP への読み出しと書き込みのアクセスを与える。 この値が 0 ならば、パニック時にカーネルは
(無限) ループに入る。 0 でなければ、その秒数だけ待ってから自動的に再起動する。 ソフトウェア watchdog ドライバを使っている場合、
推奨される設定は 60 である。
.TP
\fI/proc/sys/kernel/panic_on_oops\fP (Linux 2.5.68 以降)
このファイルは、oops や BUG が起こった場合のカーネルの動作を制御する。 ファイルに 0 が書かれている場合、システムは操作を続行しようとする。
1 が書かれている場合、システムは (klogd が oops 出力を記録する時間を与えるために) 数秒間遅延した後、 panic を起こす。
\fI/proc/sys/kernel/panic\fP ファイルも 0 でない場合、マシンは再起動される。
.TP
\fI/proc/sys/kernel/pid_max\fP (Linux 2.5.34 以降)
.\" Prior to 2.6.10, pid_max could also be raised above 32768 on 32-bit
.\" platforms, but this broke /proc/[pid]
.\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=109513010926152&w=2
このファイルは、PID をいくつで終了にするかを指定する (すなわち、このファイルの値は最大 PID より 1 大きい)。 このファイルのデフォルト値は
32768 であり、 その場合には以前のカーネルと同じ PID の範囲になる。 32ビットのプラットフォームでは、 \fIpid_max\fP の最大値は
32768 である。 64ビットのプラットフォームでは、 2^22 (\fBPID_MAX_LIMIT\fP, 約 4,000,000)
までの任意の値を設定できる。
.TP
\fI/proc/sys/kernel/powersave\-nap\fP (PowerPC のみ)
このファイルにはフラグが書かれている。 フラグが設定されると、Linux\-PPC は 省電力の "nap" モードを使う。
設定されない場合は、"doze" モードが使われる。
.TP
\fI/proc/sys/kernel/printk\fP
このファイルにある 4 つの値は、 \fIconsole_loglevel\fP, \fIdefault_message_loglevel\fP,
\fIminimum_console_loglevel\fP, \fIdefault_console_loglevel\fP である。
これらの値はエラーメッセージを表示したり記録したりする \fIprintk()\fP の動作に影響する。 各 loglevel の情報については、
\fBsyslog\fP(2) を参照すること。 優先度が \fIconsole_loglevel\fP 以上のメッセージは、コンソールに表示される。
優先度が明示されていないメッセージは、優先度が \fIdefault_message_level\fP のときに表示される。
\fIminimum_console_loglevel\fP は \fIconsole_loglevel\fP に設定できる最小 (最高) の値である。
\fIdefault_console_loglevel\fP は \fIconsole_loglevel\fP のデフォルトの値である。
.TP
\fI/proc/sys/kernel/pty\fP (Linux 2.6.4 以降)
このディレクトリは、UNIX 98 疑似端末 (\fBpts\fP(4) を参照) の数に関連する
2 つのファイルを含む。
.TP
\fI/proc/sys/kernel/pty/max\fP
このファイルは疑似端末の最大数を定義する。
.TP
\fI/proc/sys/kernel/pty/nr\fP
この読み出し専用のファイルは、現在いくつの疑似端末が使われているかを表す。
.TP
\fI/proc/sys/kernel/random\fP
このディレクトリは、ファイル \fI/dev/random\fP の操作を制御する様々なパラメータが書かれている。 詳細は \fBrandom\fP(4)
を参照。
.TP
\fI/proc/sys/kernel/random/uuid\fP (Linux 2.4 以降)
この読み出し専用のファイルから読み出しを行うごとに、 ランダムに生成した 128 ビットの UUID を、 標準の UUID 形式の文字列として返す。
.TP
\fI/proc/sys/kernel/real\-root\-dev\fP
このファイルは Linux カーネルソースファイル \fIDocumentation/initrd.txt\fP に記述されている。
.TP
\fI/proc/sys/kernel/reboot\-cmd\fP (Sparc のみ)
このファイルは SPARC ROM/Flash ブートローダに引き数を渡す方法を 提供しているように思われる。
再起動後に何をするかを指定しているのだろうか?
.TP
\fI/proc/sys/kernel/rtsig\-max\fP
(2.6.7 までのカーネルにのみ存在する。 \fBsetrlimit\fP(2) を参照すること) このファイルはシステムで発行される POSIX
real\-time (queued) signal の 最大数を調整するのに使用される。
.TP
\fI/proc/sys/kernel/rtsig\-nr\fP
(2.6.7 までのカーネルにのみ存在する) このファイルは現在キューに入っている POSIX real\-time signal の数を表す。
.TP
\fI/proc/sys/kernel/sched_rr_timeslice_ms\fP (Linux 3.9 以降)
\fBsched_rr_get_interval\fP(2) 参照。
.TP
\fI/proc/sys/kernel/sem\fP (Linux 2.4 以降)
このファイルには System V IPC セマフォを制限する 4 つの値が書かれている。 これらのフィールドは次の順番に並んでいる:
.RS
.IP SEMMSL 8
セマフォ集合ごとのセマフォ数の最大値。
.IP SEMMNS 8
システム全体での、全てのセマフォ集合におけるセマフォ数の制限。
.IP SEMOPM 8
\fBsemop\fP(2) コールに指定されるオペレーション数の最大値。
.IP SEMMNI 8
システム全体でのセマフォ識別子の最大値。
.RE
.TP
\fI/proc/sys/kernel/sg\-big\-buff\fP
このファイルは、汎用 SCSI デバイス (sg) のバッファサイズの最大値を表す。 今はこれを変更することはできないが、 コンパイル時に
\fIinclude/scsi/sg.h\fP を編集して \fBSG_BIG_BUFF\fP の値を変えれば変更できる。
ただし、この値を変更する理由はないだろう。
.TP
\fI/proc/sys/kernel/shm_rmid_forced\fP (Linux 3.1 以降)
.\" commit b34a6b1da371ed8af1221459a18c67970f7e3d53
.\" See also Documentation/sysctl/kernel.txt
If this file is set to 1, all System V shared memory segments will be marked
for destruction as soon as the number of attached processes falls to zero;
in other words, it is no longer possible to create shared memory segments
that exist independently of any attached process.
.IP
The effect is as though a \fBshmctl\fP(2) \fBIPC_RMID\fP is performed on all
existing segments as well as all segments created in the future (until this
file is reset to 0). Note that existing segments that are attached to no
process will be immediately destroyed when this file is set to 1. Setting
this option will also destroy segments that were created, but never
attached, upon termination of the process that created the segment with
\fBshmget\fP(2).
.IP
Setting this file to 1 provides a way of ensuring that all System V shared
memory segments are counted against the resource usage and resource limits
(see the description of \fBRLIMIT_AS\fP in \fBgetrlimit\fP(2)) of at least one
process.
.IP
Because setting this file to 1 produces behavior that is nonstandard and
could also break existing applications, the default value in this file is
0. Only set this file to 1 if you have a good understanding of the
semantics of the applications using System V shared memory on your system.
.TP
\fI/proc/sys/kernel/shmall\fP (Linux 2.2 以降)
このファイルには System V 共有メモリの総ページ数の システム全体での制限が書かれている。
.TP
\fI/proc/sys/kernel/shmmax\fP (Linux 2.2 以降)
このファイルを通じて、(System V IPC) 共有メモリセグメントを作成するときの 最大サイズの実行時上限 (run\-time limit)
を取得または設定できる。 現在は 1GB までの共有メモリセグメントが カーネルでサポートされている。 この値のデフォルトは \fBSHMMAX\fP
である。
.TP
\fI/proc/sys/kernel/shmmni\fP (Linux 2.4 以降)
このファイルは、システム全体で作成可能な System V 共有メモリセグメント数を指定する。
.TP
\fI/proc/sys/kernel/sysrq\fP
このファイルは、SysRq キーにより起動が許可されている関数群を制御する ものである。デフォルトでは、ファイルの内容は 1 であり、
これは起こり得る全ての SysRq リクエストが許可されることを意味する (古いバージョンのカーネルでは、SysRq はデフォルトでは無効になっており、
実行時に明示的に有効にする必要があったが、今はそうではない)。 このファイルで指定可能な値は以下の通り。
0 \- sysrq を完全に無効にする
1 \- sysrq の全ての関数を有効にする
>1 \- 許可する sysrq 関数のビットマスク。内訳は以下の通り。
2 \- コンソールのログ・レベルの制御を有効にする
4 \- キーボードの制御を有効にする (SAK, unraw)
8 \- プロセスなどのデバッグ・ダンプを有効にする
16 \- sync コマンドを有効にする
32 \- 読み出し専用での再マウントを有効にする
64 \- プロセスへのシグナル発行を有効にする (term, kill, oom\-kill)
128 \- リブート/電源オフを許可する
256 \- 全てのリアルタイム・タスクの nice 値の変更を許可する
カーネル設定オプション \fBCONFIG_MAGIC_SYSRQ\fP が有効な場合のみ、このファイルは存在する。 詳細は、Linux
カーネルソースファイル \fIDocumentation/sysrq.txt\fP を参照のこと。
.TP
\fI/proc/sys/kernel/version\fP
このファイルには、以下のような文字列が書かれている:
#5 Wed Feb 25 21:49:24 MET 1998
\&"#5" はこのソースで構築された 5 番目のカーネルであることを意味する。 その後にある日付はカーネルが構築された時刻を表す。
.TP
\fI/proc/sys/kernel/threads\-max\fP (Linux 2.3.11 以降)
このファイルは、システム全体で作成可能なスレッド数 (タスク数) の上限を指定する。
.TP
\fI/proc/sys/kernel/zero\-paged\fP (PowerPC のみ)
このファイルはフラグを含む。 (0 以外の値で) 有効された場合、Linux\-PPC はアイドルループで pre\-zero page
を行うので、get_free_pages の速度が向上する可能性がある。
.TP
\fI/proc/sys/net\fP
このディレクトリにはネットワーク関係の情報が入っている。 このディレクトリにあるファイルのいくつかについては、 \fBtcp\fP(7) や
\fBip\fP(7) に説明がある。
.TP
\fI/proc/sys/net/core/somaxconn\fP
このファイルは \fBlisten\fP(2) の \fIbacklog\fP 引き数の上限値を規定する。 詳細は \fBlisten\fP(2)
のマニュアルページを参照。
.TP
\fI/proc/sys/proc\fP
このディレクトリは空の場合もある。
.TP
\fI/proc/sys/sunrpc\fP
このディレクトリはネットワークファイルシステム (NFS) への Sun remote procedure call (遠隔手続き呼び出し)
をサポートする。 これが存在しないシステムもある。
.TP
\fI/proc/sys/vm\fP
このディレクトリにはメモリ管理の調整、バッファやキャッシュ管理のための ファイルがある。
.TP
\fI/proc/sys/vm/drop_caches\fP (Linux 2.6.16 以降)
このファイルに書き込みを行うと、カーネルに、 クリーンなキャッシュ、 dentry、 inode をメモリから追い出して、
メモリを解放させることができる。 この機能はメモリ管理のテストや再現可能なファイルシステムのベンチマークを行うのに役立つ。
このファイルへの書き込みはキャッシュの利点を失うことになるので、システム全体の性能は低下する可能性がある。
ページキャッシュを解放するには、以下のようにする。
echo 1 > /proc/sys/vm/drop_caches
dentry と inode を解放するには、以下のようにする。
echo 2 > /proc/sys/vm/drop_caches
ページキャッシュ、 dentry、 inode を解放するには、以下のようにする。
echo 3 > /proc/sys/vm/drop_caches
このファイルへの書き込みは非破壊的な操作で、 ダーティな (dirty) オブジェクトは 解放されないので、 この操作を行う際は最初に
\fBsync\fP(8) を実行しておくべきである。
.TP
\fI/proc/sys/vm/legacy_va_layout\fP (Linux 2.6.9 以降)
.\" The following is from Documentation/filesystems/proc.txt
0 以外の場合、新しい 32ビットメモリマッピング配置が無効になり、 カーネルは全てのプロセスに対して従来の (カーネル 2.4 の) 配置方法を
使用する。
.TP
\fI/proc/sys/vm/memory_failure_early_kill\fP (Linux 2.6.32 以降)
.\" The following is based on the text in Documentation/sysctl/vm.txt
このファイルは、カーネルが処理できない訂正不能なメモリエラー (通常はメモリモジュールでの 2 ビットエラー)
がバックグラウンドでハードウェアにより検出された際に、プロセスをどのように kill するかを制御する。
(ページの有効なコピーがディスク上にも存在するなど)
いくつかの場面では、カーネルはアプリケーションに影響を与えずに透過的に故障を処理する。しかし、データの最新のコピーが他にはない場合には、データ破壊が波及するのを防ぐため、カーネルはプロセスを
kill する。
このファイルは以下のいずれかの値を持つ。
.RS
.IP 1: 4
データ破壊が検出されるとすぐに、故障が検出され復元できないページ (corrupted\-and\-not\-reloadable page)
をマップしている全てのプロセスを kill する。この機能は、(カーネル内部で割り当てられたデータやスワップのキャッシュなど)
少数のいくつかのタイプのページではサポートされていないが、大半のユーザページではこの機能は働く。
.IP 0: 4
データ破壊が検出されたページの全てのプロセスからの unmap のみを行い、そのページにアクセスしようとしたプロセスのみを kill する。
.RE
.IP
この kill は \fIsi_code\fP に \fBBUS_MCEERR_AO\fP を設定した \fBSIGBUS\fP
シグナルを使って行われる。プロセス側では必要であればこのシグナルを処理することができる。詳細は \fBsigaction\fP(2) を参照。
この機能は、高度なマシンチェック機構を持ったアーキテクチャ/プラットフォームにおいてのみ有効であり、ハードウェア機能にも依存している。
アプリケーションは \fBprctl\fP(2) の \fBPR_MCE_KILL\fP 操作を使って個別に
\fImemory_failure_early_kill\fP の設定を上書きすることができる。
.IP
カーネルの設定で \fBCONFIG_MEMORY_FAILURE\fP が有効になっている場合にのみ
存在する。
.TP
\fI/proc/sys/vm/memory_failure_recovery\fP (Linux 2.6.32 以降)
.\" The following is based on the text in Documentation/sysctl/vm.txt
メモリ故障回復 (memory failure recovery) を有効にする
(プラットフォームがサポートしている場合)
.RS
.IP 1: 4
回復を試みる。
.IP 0: 4
メモリ故障時には常に panic を起こす。
.RE
.IP
カーネルの設定で \fBCONFIG_MEMORY_FAILURE\fP が有効になっている場合にのみ
存在する。
.TP
\fI/proc/sys/vm/oom_dump_tasks\fP (Linux 2.6.25 以降)
.\" The following is from Documentation/sysctl/vm.txt
カーネルが OOM\-killing を実行する際に、システム全体のタスク・ダンプ (カーネルスレッドを除く) を生成するかを制御する。
ダンプには、タスク (スレッド、プロセス) 毎に以下の情報が出力される: スレッド ID、実ユーザ ID、スレッドグループ ID (プロセス ID)、
仮想メモリサイズ、Resident Set Size (実メモリ上に存在するページサイズ)、 タスクがスケジューリングされた CPU、 oom_adj
スコア (\fI/proc/[pid]/oom_adj\fP の説明を参照)、コマンド名。 このダンプ情報は、なぜ OOM\-killer
が起動されたかを知り、 その原因となったならず者のタスクを特定するのに役に立つ。
このファイルの内容が値 0 の場合、ダンプ情報の出力は行われない。 タスクが何千もある非常に巨大なシステムでは、
各々のタスクについてメモリ状態をダンプするのは適切でないかもしれない。 そのようなシステムでは、ダンプ情報が必要でもないときに メモリ不足 (OOM)
の状況で性能面の不利益が起こらないようにすべきだろう。
このファイルの内容が 0 以外の場合、 OOM\-killer が実際にメモリを占有したタスクを kill する度に ダンプ情報が出力される。
デフォルト値は 0 である。
.TP
\fI/proc/sys/vm/oom_kill_allocating_task\fP (Linux 2.6.24 以降)
.\" The following is from Documentation/sysctl/vm.txt
このファイルは、メモリ不足 (OOM) の状況が起こった際に、 メモリ不足のきっかけとなったタスクを kill するかどうかを制御する。
このファイルが 0 に設定された場合、 OOM\-killer はタスクリスト全体をスキャンし、経験則に基づき kill するタスクを選択する。
通常は、kill した場合に多くのメモリが解放できる、 ならず者のメモリ占有タスクが選択される。
このファイルが 0 以外に設定された場合、 OOM\-killer はメモリ不足の状況が発生するきっかけとなったタスクを 単純に kill
するだけである。 これにより、たいていは重い処理となるタスクリストのスキャンを回避できる。
\fI/proc/sys/vm/panic_on_oom\fP が 0 以外の場合、
\fI/proc/sys/vm/oom_kill_allocating_task\fP にどのような値が入っていたとしても、
\fI/proc/sys/vm/panic_on_oom\fP の方が優先される。
デフォルト値は 0 である。
.TP
\fI/proc/sys/vm/overcommit_memory\fP
このファイルにはカーネル仮想メモリのアカウントモードが書かれている。 値は以下の通り:
.RS
.IP
0: 発見的なオーバーコミット (heuristic overcommit) (これがデフォルトである)
.br
1: 常にオーバーコミットし、チェックしない。
.br
2: 常にチェックし、オーバーコミットしない。
.RE
.IP
モード 0 では、 \fBMAP_NORESERVE\fP を設定して呼び出された \fBmmap\fP(2) はチェックされない。
またデフォルトのチェックはとても脆弱で、 プロセスを "OOM\-kill" してしまうリスクを引き起こす。 Linux 2.4 では 0
以外の値はモード 1 を意味する。 (Linux 2.6 以降で利用可能な) モード 2 では、 システム上の仮想アドレス空間の合計が (SS +
RAM*(r/100)) に制限されている。 ここで、SS はスワップ空間のサイズ、 RAM は物理メモリのサイズ、r はファイル
\fI/proc/sys/vm/overcommit_ratio\fP の内容である。
.TP
\fI/proc/sys/vm/overcommit_ratio\fP
\fI/proc/sys/vm/overcommit_memory\fP の説明を参照すること。
.TP
\fI/proc/sys/vm/panic_on_oom\fP (Linux 2.6.18 以降)
.\" The following is adapted from Documentation/sysctl/vm.txt
このファイルは、メモリ不足時にカーネルパニックを 起こすか起こさないかを制御する。
このファイルに値 0 を設定すると、 カーネルの OOM\-killer がならず者のプロセスを kill する。 普通は、OOM\-killer
がならず者のプロセスを kill することができ、 システムは何とか動き続けることができる。
このファイルに値 1 を設定すると、 メモリ不足の状況が発生すると、カーネルは普通はパニックする。 しかしながら、プロセスが メモリポリシー
(\fBmbind\fP(2) の \fBMPOL_BIND\fP) や cpusets (\fBcpuset\fP(7))
を使って特定のノードへのメモリ割り当てを制限していて、 それらのノードでメモリ枯渇状態に至った場合は、 一つのプロセスが OOM\-killer により
kill されるだけかもしれない。 この場合には、カーネルパニックは発生しない。 なぜなら、他のノードのメモリには空きがあるかもしれず、
したがって、システム全体としてはメモリ不足の状況にまだ達していないかも しれないからである。
このファイルに値 2 を設定すると、 メモリ不足の状況が発生するとカーネルは常にパニックを起こす。
デフォルト値は 0 である。 1 と 2 はクラスタリングのフェイルオーバー用である。 フェイルオーバーの方針に応じてどちらかの値を選択すること。
.TP
\fI/proc/sys/vm/swappiness\fP
.\" The following is from Documentation/sysctl/vm.txt
このファイルの値により、カーネルがどの程度激しくメモリページの スワップを行う
かが制御される。 大きな値ほどスワップが激しくなり、小さい値ほど激しくなくなる。
デフォルト値は 60 である。
.TP
\fI/proc/sysrq\-trigger\fP (Linux 2.4.21 以降)
このファイルに文字 character を書き込むと、 キーボードから ALT\-SysRq\-<character> を入力した場合と
同じ SysRq 関数が起動される (\fI/proc/sys/kernel/sysrq\fP の説明を参照)。 通常、このファイルへ書き込みができるのは
\fIroot\fP だけである。詳細については、Linux カーネルソースファイルの \fIDocumentation/sysrq.txt\fP を参照のこと。
.TP
\fI/proc/sysvipc\fP
疑似ファイル \fImsg\fP, \fIsem\fP, \fIshm\fP を含むサブディレクトリ。 これらのファイルは、現在システム上に存在する System V
プロセス間通信 (Interprocess Communication, IPC) オブジェクト (それぞれ: メッセージキュー、セマフォ、共有メモリ)
のリストであり、 \fBipcs\fP(1) で取得できる情報と同じものを提供する。 これらのファイルにはヘッダがあり、理解しやすいように (1 行につき
1 個の IPC オブジェクトの形式で) フォーマットされている。 \fBsvipc\fP(7)
にはこれらのファイルから分かる情報の詳細な背景が書かれている。
.TP
\fI/proc/tty\fP
疑似ファイルを含むサブディレクトリ。 tty ドライバとライン設定 (line discipline) の書かれた サブディレクトリも含まれる。
.TP
\fI/proc/uptime\fP
このファイルは システム起動時から経過した時間 (秒) と アイドル (idle) しているプロセスが消費した時間 (秒) の 2 つの数を含む。
.TP
\fI/proc/version\fP
現在稼働しているカーネルのバージョン識別子である文字列。 これには \fI/proc/sys/ostype\fP,
\fI/proc/sys/osrelease\fP, \fI/proc/sys/version\fP の内容が含まれる。 たとえばこのように:
.nf
.in -2
\f(CWLinux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994\fP
.in +2
.fi
.\" FIXME Document /proc/timer_list
.\" .TP
.\" .IR /proc/timer_list " (since Linux 2.6.21)"
.\" See the 2.6.21 Change log
.\" FIXME Document /proc/timer_stats
.\" .TP
.\" .IR /proc/timer_stats " (since Linux 2.6.21)"
.\" See the 2.6.21 Change log
.TP
\fI/proc/vmstat\fP (Linux 2.6 以降)
このファイルは仮想メモリの様々な統計情報を表示する。
.TP
\fI/proc/zoneinfo\fP (Linux 2.6.13 以降)
.\" FIXME more should be said about /proc/zoneinfo
このファイルはメモリのゾーン (memory zone) に関する情報を表示する。 仮想メモリの振舞いを分析するのに役立つ。
.SH 注意
ほとんどの文字列 (たとえば環境変数やコマンド行) は内部表現のままなので、
各フィールドはヌルバイト (\(aq\e0\(aq) で区切られている。だから、
\fIod \-c\fP や \fItr "\e000" "\en"\fP を使えば、それらはより読みやすくなる。
また \fIecho \`cat <file>\`\fP でもよい。
.\" .SH ACKNOWLEDGEMENTS
.\" The material on /proc/sys/fs and /proc/sys/kernel is closely based on
.\" kernel source documentation files written by Rik van Riel.
このマニュアルは不完全であり、たぶん不正確で、しばしば更新される必要がある。
.SH 関連項目
\fBcat\fP(1), \fBdmesg\fP(1), \fBfind\fP(1), \fBfree\fP(1), \fBps\fP(1), \fBtr\fP(1),
\fBuptime\fP(1), \fBchroot\fP(2), \fBmmap\fP(2), \fBreadlink\fP(2), \fBsyslog\fP(2),
\fBslabinfo\fP(5), \fBhier\fP(7), \fBtime\fP(7), \fBarp\fP(8), \fBhdparm\fP(8),
\fBifconfig\fP(8), \fBinit\fP(8), \fBlsmod\fP(8), \fBlspci\fP(8), \fBmount\fP(8),
\fBnetstat\fP(8), \fBprocinfo\fP(8), \fBroute\fP(8), \fBsysctl\fP(8)
Linux カーネルのソースファイル: \fIDocumentation/filesystems/proc.txt\fP
\fIDocumentation/sysctl/fs.txt\fP, \fIDocumentation/sysctl/kernel.txt\fP,
\fIDocumentation/sysctl/net.txt\fP, and \fIDocumentation/sysctl/vm.txt\fP.
.SH この文書について
この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。
|