Vyhledávání na webu

/proc - Získání informací o procesu a hardwaru Linuxu


Dnes se ponoříme do obsahu adresáře /proc, abychom lépe porozuměli jeho funkcím. Je důležité poznamenat, že adresář /proc je společným prvkem všech distribucí Linuxu, bez ohledu na jejich typ nebo architekturu.

Jedna mylná představa, kterou musíme okamžitě objasnit, je, že adresář /proc NENÍ konvenční souborový systém v tradičním slova smyslu.

Jedná se o virtuální souborový systém, který obsahuje informace o procesech a další data související se systémem v rámci procfs. Tento souborový systém je namapován do adresáře /proc a je připojen během procesu spouštění systému.

Co je /proc v Linuxu

Souborový systém /proc slouží jako rozhraní pro datové struktury jádra a informace za běhu, což uživatelům i aplikacím poskytuje způsob, jak získat přístup k podrobným informacím o procesech, konfiguraci systému, hardwaru atd. tato data prostřednictvím hierarchie virtuálních souborů.

Chcete-li zobrazit úplný seznam souborů a adresářů v systému souborů /proc, můžete použít příkaz ls, jak je uvedeno na obrázku.

ls /proc

Navigace /proc v Linuxu

Když přejdete do adresáře /proc, všimnete si, že tam jsou některé známé soubory a pak celá řada očíslovaných adresářů, z nichž každý odpovídá běžícímu procesu v systému.

cd /proc
ls

Tyto očíslované adresáře představují procesy, lépe známé jako ID procesů (PID), a v nich příkaz, který je obsazuje. Soubory obsahují systémové informace, jako je paměť (meminfo), informace o CPU (cpuinfo) a dostupné souborové systémy.

Zde je několik klíčových souborů a adresářů, se kterými se setkáte:

  • /proc/cpuinfo – Zobrazí informace o CPU (procesorech) v systému, jako je model, rychlost a počet jader.
  • /proc/meminfo – Zobrazí podrobnosti o využití paměti a statistiky, které obsahují celkové množství paměti, volnou paměť a paměť používanou jednotlivými procesy.
  • /proc/filesystems – Obsahuje seznam všech souborových systémů, které jsou podporovány jádrem.
  • /proc/sys – Vypíše konfigurační a runtime parametry pro jádro.
  • /proc/loadavg – Zobrazí průměrné zatížení systému v různých časových intervalech, jako je 1, 5 a 15 minut.
  • /proc/self – Symbolický odkaz na vlastní adresář procesu.
  • /proc/stat – Obsahuje různé statistiky o systému, jako je počet spuštěných procesů, počet přerušení a množství času stráveného v jednotlivých stavech CPU.
  • /proc/uptime – Obsahuje dobu, po kterou byl systém spuštěn.
  • /proc/PID – Obsahuje informace o konkrétním procesu, kde PID je ID procesu.

Extrahování systémových informací

Soubor /proc/meminfo se používá k zobrazení informací o využití paměti a statistikách systému Linux, který obsahuje snímek různých metrik souvisejících s pamětí, což může být užitečné pro monitorování výkonu systému a využití zdrojů. .

cat /proc/meminfo

Jak vidíte, /proc/meminfo obsahuje spoustu informací o paměti vašeho systému, včetně celkového dostupného množství (v kb) a volného množství na prvních dvou linky.

Spuštěním příkazu cat na libovolném souboru v /proc se zobrazí jejich obsah. Informace o všech souborech jsou dostupné na man stránce spuštěním:

man 5 /proc/<filename>

Poskytnu vám rychlý přehled o souborech /proc:

  • /proc/cmdline – Informace z příkazového řádku jádra.
  • /proc/console – Informace o aktuálních konzolích včetně tty.
  • /proc/devices – Ovladače zařízení aktuálně nakonfigurované pro běžící jádro.
  • /proc/dma – Informace o aktuálních kanálech DMA.
  • /proc/fb – Zařízení Framebuffer.
  • /proc/filesystems – Aktuální souborové systémy podporované jádrem.
  • /proc/iomem – Aktuální mapa systémové paměti pro zařízení.
  • /proc/ioports – Registrované oblasti portů pro vstupně-výstupní komunikaci se zařízením.
  • /proc/loadavg – Průměrná zátěž systému.
  • /proc/locks – Soubory aktuálně uzamčené jádrem.
  • /proc/meminfo – Informace o systémové paměti (viz výše uvedený příklad).
  • /proc/misc – Různé ovladače registrované pro různá hlavní zařízení.
  • /proc/modules – Aktuálně načtené moduly jádra.
  • /proc/mounts – Seznam všech připojení používaných systémem.
  • /proc/partitions – Podrobné informace o oddílech dostupných systému.
  • /proc/pci – Informace o každém zařízení PCI.
  • /proc/stat – Záznam nebo různé statistiky uchovávané od posledního restartu.
  • /proc/swap – Informace o odkládacím prostoru.
  • /proc/uptime – Informace o provozuschopnosti (v sekundách).
  • /proc/version – Nainstalovaná verze jádra, verze gcc a distribuce Linuxu.

Extrahování informací o procesu

V očíslovaných adresářích /proc najdete několik souborů a odkazů. Pamatujte, že čísla těchto adresářů korelují s PID příkazu, který je v nich spuštěn.

Například přechod na /proc/ poskytuje podrobnosti jako:

  • /proc//cmdline – Argumenty příkazového řádku používané ke spuštění procesu.
  • /proc//status – Podrobné informace o stavu, včetně využití paměti a statistik procesů.
  • /proc//fd – Symbolické odkazy na soubory otevřené procesem.

Použijme příklad k zobrazení složky s názvem /proc/12.

cd /proc/12
ls

Pokud běžím:

cat /proc/12/status

Dostávám následující:

Takže, co to znamená? No, důležitá část je nahoře. Ze stavového souboru vidíme, že tento proces patří rcu_tasks_rude_kthread. Jeho aktuální stav je nečinný a jeho ID procesu je samozřejmě 12.

Můžeme také vidět, kdo to spouští, protože UID a GID jsou 0, což znamená, že tento proces patří k rootu silný> uživatel.

V každém očíslovaném adresáři budete mít podobnou strukturu souborů a ty nejdůležitější s jejich popisy jsou následující:

  • cmdline – příkazový řádek procesu
  • prostředí – proměnné prostředí
  • fd – deskriptory souborů
  • limity – obsahuje informace o limitech procesu
  • připojení – související informace

V očíslovaném adresáři si také všimnete několika odkazů:

  • cwd – odkaz na aktuální pracovní adresář procesu
  • exe – odkaz na spustitelný soubor procesu
  • root – odkaz na pracovní adresář procesu

To by vám mělo pomoci seznámit se s adresářem /proc. Měl by také poskytnout pohled na to, jak řada příkazů získává své informace, jako je doba provozu, lsof, mount a ps, abychom jmenovali alespoň některé.