Днес ще разгледаме съдържанието на /процес директория, за да развиете по-добро разбиране на нейните функционалности. Важно е да се отбележи, че /процес директорията е обща характеристика във всички дистрибуции на Linux, независимо от техния вкус или архитектура.
Едно погрешно схващане, което трябва незабавно да изясним, е, че /процес директорията НЕ е конвенционална файлова система в традиционния смисъл на термина.
Това е виртуална файлова система, която съдържа информация за процеси и други свързани със системата данни в рамките на procfs. Тази файлова система е съпоставена към /процес директория и се монтира по време на процеса на зареждане на системата.
Съдържание
Какво е /proc в Linux
The /процес файловата система служи като интерфейс към структурите от данни на ядрото и информацията по време на изпълнение, което предоставя начин както на потребителите, така и на приложенията за достъп до подробна информация за процеси, системна конфигурация, хардуер и други, като излага тези данни чрез йерархия от виртуални файлове.
За да видите пълен списък с файлове и директории в /процес файлова система, можете да използвате командата ls, както е показано.
$ ls /proc

Навигация /proc в Linux
Когато навигирате до /процес директория, ще забележите, че има някои познато звучащи файлове и след това цял куп номерирани директории, всяка от които съответства на работещ процес в системата.
$ cd /proc $ ls

Тези номерирани директории представляват процесите, по-известни като идентификатори на процеси (PID), и в тях команда, която ги заема. Файловете съдържат системна информация като памет (meminfo), информация за процесора (cpuinfo) и налични файлови системи.
Ето няколко ключови файла и директории, които ще срещнете:
/proc/cpuinfo
– Избройте информация за процесора(ите) в системата, като например модел, скорост и брой ядра./proc/meminfo
– Избройте подробности за използването на паметта и статистика, която съдържа общото количество памет, свободната памет и паметта, използвана от всеки процес./proc/filesystems
– Съдържа списък на всички файлови системи, които се поддържат от ядрото./proc/sys
– Списък на конфигурацията и параметрите за изпълнение на ядрото./proc/loadavg
– Показване на средно натоварване на системата за различни интервали от време като 1, 5 и 15 минути./proc/self
– Символна връзка към собствената директория на процеса./proc/stat
– Съдържа различни статистически данни за системата, като например броя на изпълняваните процеси, броя на прекъсванията и времето, прекарано във всяко състояние на процесора./proc/uptime
– Съдържа времето, през което системата е работила./proc/PID
– Съдържа информация за конкретен процес, където PID е ID на процеса.
Извличане на системна информация
The /proc/meminfo се използва за показване на информация за използването на паметта и статистиката на Linux система, която съдържа моментна снимка на различни показатели, свързани с паметта, които могат да бъдат полезни за наблюдение на производителността на системата и използването на ресурсите.
$ cat /proc/meminfo

Както виждаш, /proc/meminfo съдържа куп информация за паметта на вашата система, включително общия наличен обем (в kb) и безплатната сума в горните два реда.
Изпълнение на командата cat на всеки от файловете в /процес ще изведе тяхното съдържание. Информация за всички файлове е достъпна в страницата с ръководството, като изпълните:
$ man 5 /proc/<filename>
Ще ви дам бърз преглед /процеси файлове:
- /proc/cmdline – Информация за командния ред на ядрото.
- /proc/конзола – Информация за текущите конзоли, включително tty.
- /proc/устройства – Драйвери на устройства, текущо конфигурирани за работещото ядро.
- /proc/dma – Информация за текущите DMA канали.
- /proc/fb – Framebuffer устройства.
- /proc/файлова системаs – Текущи файлови системи, поддържани от ядрото.
- /proc/iom – Текуща карта на системната памет за устройства.
- /proc/ioports – Регистрирани региони на портове за входно-изходна комуникация с устройството.
- /proc/loadavg – Средно натоварване на системата.
- /proc/locks – Файлове, които в момента са заключени от ядрото.
- /proc/meminfo – Информация за системната памет (вижте примера по-горе).
- /proc/разни – Различни драйвери, регистрирани за различни основни устройства.
- /proc/modules – Текущо заредени модули на ядрото.
- /proc/монтира – Списък на всички монтирания, използвани от системата.
- /proc/дялове – Подробна информация за наличните за системата дялове.
- /proc/pci – Информация за всяко PCI устройство.
- /proc/stat – Запис или различни статистики, запазени от последното рестартиране.
- /proc/swap – Информация за суап пространство.
- /proc/време на работа – Информация за времето на работа (в секунди).
- /proc/версия – Инсталирана версия на ядрото, версия на gcc и дистрибуция на Linux.
Извличане на информация за процеса
В рамките на /процеси номерирани директории ще намерите няколко файлове и връзки. Не забравяйте, че номерата на тези директории корелират с PID на командата, която се изпълнява в тях.
Например навигация до /proc/<PID>
предоставя подробности като:
/proc/<PID>/cmdline
– Аргументи на командния ред, използвани за стартиране на процеса./proc/<PID>/status
– Подробна информация за състоянието, включително използване на паметта и статистически данни за процеса./proc/<PID>/fd
– Символни връзки към файлове, отворени от процеса.
Нека използваме пример, за да видим папка, наречена /proc/12.
$ cd /proc/12 $ ls
Ако тичам:
$ cat /proc/12/status
Получавам следното:

И така, какво означава това? Е, важната част е на върха. Можем да видим от файла със състоянието, към който принадлежи този процес rcu_tasks_rude_kthread. Сегашното му състояние е празени неговия процес документ за самоличност е 12очевидно.
Можем също да видим кой управлява това, като UID и GID са 0което показва, че този процес принадлежи на корен потребител.
Във всяка номерирана директория ще имате подобна файлова структура, а най-важните с техните описания са както следва:
- cmdline – команден ред на процеса
- околна среда – променливи на околната среда
- fd – файлови дескриптори
- граници – съдържа информация за границите на процеса
- монтажи – свързана информация
Ще забележите също редица връзки в номерираната директория:
- cwd – връзка към текущата работна директория на процеса
- екз – връзка към изпълнимия файл на процеса
- корен – връзка към работната директория на процеса
Това трябва да ви помогне да се запознаете с /процес указател. Трябва също така да предостави представа за това как редица команди получават своята информация, като време за работа, lsof, mount и ps, само за да назовем няколко.
Публикациите се превеждат автоматично с google translate