Ниже дается краткая информация по /proc.
cd /proc/20/cwd; /bin/pwd
Заметим, что команда pwd часто является встроенной в командный интерпретатор и может работать некорректно. В bash, вы можете использовать команду pwd -P.
(cat /proc/1/environ; echo) | tr "\000" "\n"
(Чтобы понять, зачем такое могло бы понадобиться, см. lilo(8).)
Под Linux 2.0 и в более ранних версиях exe является указателем на запущенный файл и является символьной ссылкой. Вызов readlink(2) на этот специальный файл exe под Linux 2.0 и более ранних версий возвращает строку формата:
[устройство]:индексный_дескриптор
Например, строка [0301]:1502 означает индексный дескриптор 1502 на устройстве со старшим номером устройства 03 (IDE, MFM и т. д.) и младшим номером устройства 01 (первый раздел на первом диске).
Для того, чтобы найти этот файл, может быть использована команда find(1) с опцией -inum.
Программы, которые работают с файлом, но не работают со стандартным вводом и которые пишут в файл, и не пишут в стандартный вывод, можно обманывать с помощью этого подкаталога. Например, если флаг -i задает входной файл, а -o -- выходной файл, то можно сделать так:
foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...
/proc/self/fd/N -- это приблизительно то же самое, что и /dev/fd/N в некоторых UNIX'ах и UNIX-подобных системах. Большинство сценариев MAKEDEV в Linux фактически делают символьные ссылки /dev/fd на /proc/self/fd.
Формат файла следующий:
address perms offset dev inode pathname 08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm 08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm 08058000-0805b000 rwxp 00000000 00:00 0 40000000-40013000 r-xp 00000000 03:0c 4165 /lib/ld-2.2.4.so 40013000-40015000 rw-p 00012000 03:0c 4165 /lib/ld-2.2.4.so 4001f000-40135000 r-xp 00000000 03:0c 45494 /lib/libc-2.2.4.so 40135000-4013e000 rw-p 00115000 03:0c 45494 /lib/libc-2.2.4.so 4013e000-40142000 rw-p 00000000 00:00 0 bffff000-c0000000 rwxp 00000000 00:00 0
где address -- это адресное пространство, занятое процессом, а perms -- права доступа к нему:
r = можно читать w = можно писать x = можно выполнять s = можно использовать несколькими процессами совместно p = личная (копирование при записи)
offset -- это смещение в файле, dev -- это устройство (старший номер:младший номер), а inode -- это индексный дескриптор на данном устройстве. 0 означает, что с данной областью памяти не ассоциированы индексные дескрипторы: примером тому является сегмент bss.
Под Linux 2.0 поле, указывающее на имя файла отсутствует.
Вот поля с соответствующими им спецификаторами форматов для scanf(3)попорядку:
cache размер буфера в KB capacity количество секторов driver версия драйвера geometry физическая и логическая геометрия identify в шестнадцатеричном виде media тип носителя model номер модели производителя settings настройки драйвера smart_thresholds в шестнадцатеричном виде smart_values в шестнадцатеричном виде
Утилита hdparm(8) предоставляет доступ к этой информации в дружественном формате.
Полная длина этого файла - это размер физической памяти (RAM) плюс 4KB.
Информация из этого файла извлекается с помощью программы dmesg(8).
Данные в том же формате, который выдает команда free(1), за исключением того, что цифры даются в байтах, а не килобайтах.
IP 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
Здесь 'IP address' это адрес машины в нотации IPv4, 'HW type' - это тип аппаратного обеспечения для этого адреса согласно RFC 826. Flags - это внутренние флаги структуры ARP (определенные в /usr/include/linux/if_arp.h), а 'HW address' -- это физическое отображение IP-адреса, если оно известно.
Inter-| 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
indx ifterface_name dmi_u dmi_g dmi_address 2 eth0 1 0 01005e000001 3 eth1 1 0 01005e000001 4 eth2 1 0 01005e000001
sl 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
Num RefCount Protocol Flags Type St Path 0: 00000002 00000000 00000000 0001 03 1: 00000001 00000000 00010000 0001 01 /dev/printer
Где 'Num' - это номер слота в таблице, 'RefCount' -- количество пользователей данного сокета, 'Protocol' в настоящий момент всегда 0, -ags' - представляет внутренние флаги ядра, содержащие состояние сокета. 'Type' в настоящий момент всегда '1' (датаграммы доменных сокетов Unix ядром пока не поддерживаются). 'St' - это внутреннее состояние сокета, а 'Path' - это путь привязки (если он есть) данного сокета.
Вы также можете писать в некоторые из этих файлов для перенастройки подсистемы или включения/выключения некоторых возможностей.
Например, команда echo 'scsi add-single-device 1 0 5 0' > /proc/scsi/scsi заставит адаптер scsi1 просканировать SCSI канал 0, чтобы найти устройство с ID 5 и LUN 0. Если по этому адресу уже есть известное устройство или если заданный адрес неправилен, то будет возвращена ошибка.
Эти каталоги показывают все драйверы, который зарегистрированы хотя бы одним SCSI HBA. Каждый каталог содержит по одному файлу на каждый зарегистрированный адаптер. Имя каждого адаптера соответствует номеру, который был получен этим адаптером во время инициализации.
Чтение данных файлов обычно показывает информацию о конфигурации драйвера и адаптера, статистическую информацию и т. д.
Записывая в эти файлы, можно добиться различных результатов от разных адаптеров. Например, командами latency и nolatency суперпользователь может включить и выключить код вычисления latency команд в драйвере eata_dma. Командами lockup и unlock суперпользователь может управлять блокировками шины, которые симулирует драйвер scsi_debug.
cache-name num-active-objs total-objs object-size num-active-slabs total-slabs num-pages-per-slabПодробности смотри в slabinfo(5).
Документацию по файлам в /proc/sys/binfmt_misc можно найти в исходных текстах ядра в Documentation/binfmt_misc.txt.
Файл dentry-state содержит шесть чисел, nr_dentry, nr_unused, age_limit (возраст в секундах), want_pages (страниц, запрошенных системой) и два пустых значения. nr_dentry всегда показывает 0. nr_unused показывает количество неиспользованных dentries. age_limit -- это возраст в секундах по истечении которого dcache entries могут быть отозваны, когда памяти становится мало и значение want_pages не ноль, когда ядро делает вызов shrink_dcache_pages() и кэш dcache пока не подрезан.
Файл dir-notify-enable может быть использован, чтобы запретить или разрешить интерфейс dnotify описанный в fcntl(2) на общесистемной основе. Значение 0 в этом файле запрещает интерфейс, а значение 1 разрешает его.
Файл dquot-max показывает максимальное количество кэшируемых записей дисковых квот. В некоторых (2.4) системах, его нет. Если число свободных кэшируемых дисковых квот является очень маленьким, а у вас в системе одновременно работает большое количество пользователей, то вам, возможно, захочется увеличить этот лимит.
Файл dquot-nr показывает количество выделенных в использование записей дисковых квот и количество свободных записей дисковых квот.
Файл
file-max
показывает системный лимит на количество открытых файлов для всех
процессов. (См. также вызов
setrlimit(2),
который можно использовать, чтобы установить ограничение
RLIMIT_NOFILE,
на количество открытых файлов файлов на процесс).
Если вы получяете большое количество сообщений о невозможности
открыть файловые дескрипторы, попытайтесь увеличить это значение:
echo 100000 > /proc/sys/fs/file-max
Константа ядра NR_OPEN устанавливает верхний лимит значения, которое может быть установлено в file-max.
Если вы увеличиваете file-max, то позаботьтесь увеличить inode-max , установив его в 3-4 раза больше, чем новое значение file-max, в противном случае вам может не хватить индексных дескрипторов.
Доступный только для чтения файл file-nr показывает количество открытых файлов. Он содержит три числа: Количество выделенных индексных дескрипторов, количество свободных файловых дескрипторов и максимальное количество файловых дескрипторов. Ядро выделяет файловые дескрипторы динамически, но оно не освобождает их сразу же. Если количество выделенных файлов становится больше максимального, то вам необходимо увеличить максимальное. Когда количество свободных файловых дескрипторов велико и у вас не бывает неожиданных пиков использования файловых дескрипторов, вам наверняка не понадобится увеличивать максимальное значение.
Файл inode-max содержит максимальное количество индексных дескрипторов, находящихся в памяти. В некоторых (2.4) системах, его может не быть. Это количество должно быть в 3-4 раза больше, чем максимальное значение в файле file-max, так как стандартному вводу (stdin), стандартному выводу (stdout) и сетевым сокетам также необходимы индексные дескрипторы. Если вам регулярно не хватает индексных декскрипторов, то вам необходимо увеличить это значение.
Файл inode-nr содержит первые два значения из inode-state.
Файл inode-state содержит семь значений: nr_inodes, nr_free_inodes, preshrink и четыре пустых. nr_inodes -- это количество индексных дескрипторов, выделенных для использования системой. Оно может быть несколько больше, чем inode-max, потому что Linux выделяет их по полной странице за раз. nr_free_inodes представляет количество свободных индексных дескрипторов. preshrink будет ненулевым, когда nr_inodes > inode-max и системе понадобится подрезать список индексных дескрипторов, вместо выделения новых.
Файл lease-break-time задаёт период, в течении которого, ядро предоставляет процессу возможность удерживать файл, занятый через вызов (fcntl(2)) после вызова, оно посылает сигнал процессу, извещая его о том, что другой процесс ожидает открытия этого файла. Если удерживающий файл процесс не удалит или не отменит удержание файла в течении указанного периода, то ядро принудительно снимет удержание.
Файл leases-enable можно использовать, чтобы разрешить или запретить в системе возможность удержания файла через (fcntl(2)). Если файл содержит 0, удержание запрещено. Если не ноль - разрешено.
Файлы overflowgid и overflowuid позволяют вам изменить значение фиксированных UID и GID. По умолчанию оно равно 65534. Некоторые файловые системы поддерживают только 16-битные UID и GID, в то время как в Linux UID и GID являются 32-битными. Когда монтируется одна из таких файловых систем с правами, позволяющими запись, все UID или GID, которые превышают 65535 транслируются перед записью на диск в переполненные значения.
Файл super-max управляет максимальным значением суперблоков и таким образом максимальным значением файловых систем, которые может смонтировать ядро. Вам необходимо увеличить super-max только в том случае, если вам нужно смонтировать больше файловых систем, чем это позволяет значение в файле super-max. Файл super-nr содержит количество файловых систем, которые смонтированы в данный момент.
Файл acct содержит три числа: highwater, lowwater и frequency. Если разрешён учёт процессов в стиле BSD, то эти значения управляют его поведением. Если свободного места на файловой системе, куда осуществляется протоколирование учёта становится меньше, чем lowwater%, то учёт процессов приостанавливается. Если свободного места становится больше, чем highwater%, то учёт процессов возобновляется. Значение frequency определяет как часто ядро проверяет свободное место (в секундах). По умолчанию значения соответственно составляют 4, 2 и 30. Таким образом, приостановка учёта осуществляется если свободно менее 2% места на диске; возобновление если места >=4%; информация о свободном месте обновляется каждые 30 секунд.
Файл cap-bound содержит набор значений ядра capability bounding set (выражаемый как десятичные числа со знаком). Этот набор является битовой маской возможностей, предоставляемых процессу во время exec, которая накладывается посредством битового умножения (AND).
Файл core_pattern (новое в Linux 2.5) предоставляет улучшеный контроль над формой имени файла core, что заменяет устаревший файл core_uses_pid, описываемый ниже. Имя файла core управляется определением шаблона в core_pattern. Шаблон может содержать символ %, который определяет какая из следующих подстановок будет применена при создании файла core:
%% Один символ % %p PID процесса, для которого создаётся файл дамп %u реальный UID процесса, для которого создаётся дамп %g реальный GID процесса, для которого создаётся дамп %s номер сигнала, вызывашего дамп %t время создания дампа (секунды прошедшие с 0:00h, 1 Jan 1970) %h имя машины (тоже, что и 'nodename' возвращаемое вызовом uname(2)) %e имя программыОдиночный символ % в конце шаблона отбрасывается из имени файла core, как и комбинация из следующих за ним символов, если она не соответствует одной из указанных выше комбинаций. Все другие символы в шаблоне становятся литеральной частью имени файла core. Максимальный размер получившегося имени файла core не может превышать 64 байт. По умолчанию - это имя "core". Для обратной совместимости, если core_pattern не включает "%p" и core_uses_pid отличен от нуля, то к имени файла core будет добавлена подстрока .PID.
Файл core_uses_pid может быть использован для управления именем файла core в Linux 2.4. Если данный файл содержит значение 0, то файл core называется просто core. Если данный файл содержит ненулевое значение, то имя файла core включает в себя идентификатор процесса в виде core.PID.
Файл ctrl-alt-del управляет обработкой нажатия клавиш Ctrl-Alt-Del. Когда значение в этом файле 0, Ctrl-Alt-Del обрабатывается и производит вызов программы init(1) для выполнения перезапуска системы. Когда значение в файле > 0, реакция Linux соответствует Vulcan Nerve Pinch (tm), согласно которому произойдёт немедленная перезагрузка, даже без синхронизации буферов дисков. Замечание: когда какая-либо программа (типа dosemu) получает клавиатуру в 'raw' режиме, нажатие ctrl-alt-del интерпретируется этой программой, перед тем как оно достигнет уровня обработки tty ядром, и таким образом, именно эта программа будет решать, что с этим делать.
Файл hotplug содержит путь для агента политики устройств, подключаемых в "горячем" режиме. По умолчанию это файл "/sbin/hotplug".
Файлы
domainname и
hostname
могут быть использованы для установки имени домена службы
NIS/YP и имени узла для вашей машины точно таким же
образом как и командами domainname и hostname, т.е.
команды:
# echo "darkstar" > /proc/sys/kernel/hostname
# echo "mydomain" > /proc/sys/kernel/domainname
имеют тот же эффект, что и команды
# hostname "darkstar"
# domainname "mydomain"
Заметим, однако, что классический darkstar.frop.org имеет имя
узла "darkstar" и доменное имя DNS (Сервера Доменных Имен)
"frop.org", не путайте с доменным именем NIS (Службы Сетевой
Информации) или как она раньше называлась YP (Yellow Pages).
Эти два доменных имени полностью различны по своей сути.
Подробности об это можно найти на странице руководства
hostname(1).
Если файл htab-reclaim (только для PowerPC) установлен в ненулевое значение, то PowerPC htab (см. файл Documentation/powerpc/ppc_htab.txt в исходных текстах ядра) подрезается каждый раз, когда система входит в цикл простоя.
Файл l2cr (только для PowerPC) содержит файл, который управляет L2 кэшем на процессорных платах G3. Если 0, кэш запрещён. Если не ноль - разрешён.
Файл modprobe описывается в файле исходных текстов ядра Documentation/kmod.txt.
Файл msgmax это системный лимит, задающий максимальное число байт в одном сообщении, которое пишется в очередь сообщений System V.
Файл msgmni задаёт системный лимит на количество идентификаторов в очереди сообщений. (Файл есть только в Linux 2.4 и выше.)
Файл msgmnb это системный параметр, используемый для инициализации установки msg_qbytes для последовательно создаваемых очередей сообщений. Установка msg_qbytes задаёт максимальное число байт, которые могут быть записаны в очередь сообщений.
Файлы ostype и osrelease содержат подстроки из /proc/version.
Файлы overflowgid и overflowuid дублируют файлы /proc/sys/fs/overflowgid и /proc/sys/fs/overflowuid.
Файл panic предоставляет доступ на чтение и запись к переменной ядра panic_timeout. Если в файле ноль, ядро будет зацикливаться при крахе системы по panic; если не ноль, то это означает, что ядро должно выполнить автоматическую перезагрузку после этого количества секунд. Когда вы используете программный драйвер устройства watchdog (устройство, периодически делающее проверку, что система функционирует), то рекомендуется установить значение 60.
Файл panic_on_oops (новое в Linux 2.5) уравляет поведением ядра, когда случается oops или BUG. Если файл содержит 0, то система пытается продолжить работу. Если содержит 1, то система выполняет задержку на несколько секунд (чтобы дать время klogd записать вывод oops) и затем генерирует крах системы через panic. Если файл panic также содержит ненулевое знаечение, то машина будет перезагружена.
Файл pid_max (новое в Linux 2.5) задаёт значение, в пределах которого находятся все идентификаторы процессов (PID)) (т.е. значение в этом файле на единицу больше, чем максимальный PID). По умолчанию, значение в этом файле составляет 32768, т.е. означает тот же самый диапазон PID'ов, что и в ранних ядрах. Значение в этом файле может быть установлено до 2^22 (значения PID_MAX_LIMIT, которое приблизительно составляет 4 миллиона).
Файл powersave-nap (только для PowerPC) содержит флаг. Если он установлен Linux-PPC будет использовать 'nap' режим сберегания питания, в противном случае, будет использоваться режим 'doze'.
Четыре значения в файле printk это console_loglevel, default_message_loglevel, minimum_console_level и default_console_loglevel. Данные значения влияют на поведение printk() при выдаче или протоколировании сообщений об ошибках. Подробности о различных уровнях протоколирования см. в syslog(2). Сообщения с более высоким приоритетом, чем console_loglevel будут выданы на консоль. Сообщения без явно заданного приоритета будут выданы с приоритетом default_message_level. minimum_console_loglevel - это минимальное (наивысшее) значение, в которое может быть установлено значение console_loglevel. default_console_loglevel - это значение по умолчанию для console_loglevel.
Каталог random содержит различные параметры, управляющие работой файла /dev/random.
Файл real-root-dev описывается в файле исходных текстов ядра Documentation/initrd.txt.
Файл reboot-cmd (только для Sparc) является способом задания аргументов для начального загрузчика SPARC ROM/Flash. Способ сказать ему, что делать после перезагрузки?
Файл rtsig-max может быть использован для настройки максимального количества сигналов реального времени POSIX (в очереди), которое может воспринять система.
Файл rtsig-nr показывает количество сигналов реального времени POSIX, которые в настоящий момент находятся в очереди.
Файл sem (доступен в Linux 2.4 и выше) содержит 4 значения, описывающих ограничения семафоров по стандарту System V. Вот эти значения по порядку:
Файл sg-big-buff показывает размер буфера стандартного SCSI устройства (sg). Вы не можете пока настраивать его, но его можно изменить при компиляции ядра, исправив файл include/scsi/sg.h, изменив в нём значение SG_BIG_BUFF. Однако, в этом как правило нет необходимости.
Файл shmall содержит системный лимит на общее количество страниц разделяемой по стандарту System V сегментов памяти.
Файл shmmax может быть использован для опроса и установки ограничения на динамическое создание разделяемых по стандарту System V сегментов памяти. В настоящий момент, ядро поддерживает сегменты разделяемой памяти до 1Gb. Это значение по умолчанию для SHMMAX.
Файл shmmni (доступен в Linux 2.4 и выше) задаёт максимальный системный лимит на создание разделяемых по стандарту System V сегментов памяти.
Файл
version
содержит строку вида:
#5 Wed Feb 25 21:49:24 MET 1998.TP
Где '#5' означает, что
пятую сборку ядра из исходных текстов, а дата после этого
показывает время сборки ядра.
Файл zero-paged (только для PowerPC) содержит флаг. Когда он разрешён (не ноль), Linux-PPC будет размещать пре-нулевые страницы в цикле простоя, что возможно увеличит скорость выполнения get_free_pages.
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
Последнее обновление было для Linux 2.4.17.
Данная страница руководства является неполной, возможно неточной и относится к тому виду документации, который обновляется очень часто.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |