Hogyan Eztán a monitor Linux rendszer kéri

Jun 23, 2025
Linux
fatmawati Achmad Zaenuri / Shutterstock.com

Linux programokat kérni a mag hogy néhány dolgot nekik. Az csík parancs feltárja ezeket a rendszer kéri. Akkor használja őket, hogy megértsük, hogyan programok működnek és miért, néha nem.

A rendszert, és felhívja

Olyan okos, mint amilyenek lehetnének, számítógépes programok nem tud mindent a maguk számára. Azt kell, hogy kéri, hogy bizonyos funkciókat végre őket. Ezek a kérések megy a Linux kernel. Általában van egy könyvtár, vagy más szoftver interfész, amely a program kéri, és a könyvtár ezt követően a megfelelő kérelmet nevezett rendszert call-a kernel.

A lehetőség, hogy a rendszer kéri, hogy a program tette és milyen válaszok segíthet megérteni a belső működését programok érdeklik, vagy hogy írtál. Ez mit csík csinál . Ez segíthet a problémákat és megjelenés szűk.

Ez nem ugyanaz, mint a hibakeresés kérelem egy eszköz, mint gdb . A hibakereső program lehetővé teszi, hogy vizsgálja meg a belső működését a program futása. Ez lehetővé teszi, hogy át lehet lépni a logikája a program, és vizsgáljuk meg a memória és a változó értékeket. Összehasonlításképpen, mi csík csinál, elfog a rendszer hívás információt a program fut. Amikor a program befejeződik vezethető, csík felsorolja a rendszer hívás információt a terminál ablakban.

A rendszer kéri biztosítani mindenféle alacsony szintű funkciókat, így például írási és olvasási műveleteket fájlokat, megölve folyamatokat, és így tovább. Van egy lista több száz rendszer kéri a rendszerhívások man oldal .

ÖSSZEFÜGGŐ: Hibakeresés GDB: Első lépések

telepítése strace

Ha csík nincs telepítve a számítógépén, akkor telepítenie nagyon könnyen.

Ubuntu, használja ezt a parancsot:

 sudo apt telepíteni strace 

Fedora, írja be ezt a parancsot:

 sudo DNF telepíteni strace 

A Manjaro, a parancs:

 sudo pacman -Sy strace 

Első lépések a strace

Fogjuk használni egy kis programot bizonyítani csík . Ez nem sokat: Ez megnyit egy fájlt, és ír egy sor szöveget, hogy azt, és nincs semmilyen hiba ellenőrzésére is. Ez csak egy gyors hack, hogy van valami használható, csík .

 #include & lt; stdio.h & gt;

int main (int argc, char argv []) {

  // fájlkezelő
  FILE * fileGeek;

  // megnyitni egy fájlt a „strace_demo.txt”, vagy hozza létre
  fileGeek = fopen ( "strace_demo.txt", "w");

  // írj hozzá némi szöveget a fájlba
  fprintf (fileGeek „Írja ezt a fájlt”);

  // közel a fájlt
  fclose (fileGeek);

  // kilép a programból
  vissza (0);

} // vége a fő 

Mi mentette ezt egy fájlt a „Fájl-io.c”, és lefordítottam gcc egy futtatható úgynevezett Stex Elnevezett „ utca verseny volt bőséges."

 gcc -o Stex fájl-io.c 

Hívjuk csík a parancssorból, és adja át a nevét az új végrehajtható azt a folyamatot, amit szeretnénk, hogy nyomon követhető. Mi is ugyanúgy nyomon követni a linuxos parancsok vagy bármilyen más bináris futtatható. Mi a mi kis program két okból.

Az első ok az, hogy csík a bőbeszédű. Nem lehet egy csomó kimenet. Ez nagyszerű, ha éppen csík a harag, de lehet elsöprő első. Van korlátozott csík kimenet mi kis programot. A második ok az, hogy a program korlátozott funkcionalitással, valamint a forráskód rövid és lényegre törő. Ez megkönnyíti, hogy melyik szakaszok a kimeneti utalnak a különböző részeit a belső működését a program.

 strace ./stex

Mi lehet tisztán látni a ír rendszer hívás elküldésével a szöveg „Írja ezt a fájlt” a mi nyitott fájlt, és a exit_group rendszer hívást. Ez végződik minden menetet a kérelmet, és elküldi a visszatérési értéket vissza a héj.

Szűrése Output

Még az egyszerű demonstrációs programunkkal is sok kimenet van. Használhatjuk a -e (kifejezés) opció. Elmegyünk a rendszerhívás nevében, amelyet látni akarunk.

 Strace -e írás ./stex

Jelentést küldhet több rendszerhívásról, ha vesszővel elválasztott listát adhat hozzá. A rendszerhívások listáján nem tartalmazzon semmilyen szóközt.

 Strace -e bezárás, írjon ./stex

A kimenet küldése fájlba

A kimenet szűrésének előnye a kimenet szűrésének problémája is. Látod, mit kértél látni, de nem látsz semmit. És bizonyos, hogy a többi kiadási hasznosabb lehet az Ön számára, mint azok a dolgok, amit kért látni.

Néha kényelmesebb, hogy mindent megragadjon és keressen, és görgessen az egész eredményt. Így nem véletlenül semmit sem zárhat ki. Az -o (Kimenet) opció Lehetővé teszi a kimenetet a csík szöveges fájlba.

 Strace -o trace-output.txt ./stex

Akkor is használja a Kevésbé parancs A lista és a rendszerhívások kereséséhez való görgetéséhez vagy más néven.

 Kevesebb nyomelem.txt 

Most már használhatja az összeset Kevésbé Keresési képességek a kimenet kivizsgálására.

ÖSSZEFÜGGŐ: Hogyan kell használni a kevesebb parancsot a Linuxon

Timestamps hozzáadása

Több különböző időbélyeget adhat hozzá a kimenethez. Az -r (Relatív időbélyegzők) Az opció hozzáteszi az időbélyegeket, amelyek az egyes egymást követő rendszerhívás kezdetét mutatják. Megjegyzendő, hogy ezek időben értékek közé tartozik a töltött idő a korábbi rendszer hívást, és bármi mást, ami a program csinál, mielőtt a következő rendszert hívást.

 Strace -r ./stex

Az időbélyegek az egyes kimeneti sorok kezdetén jelennek meg.

Az egyes rendszerhívásokban töltött idő mennyiségének megtekintéséhez használja a -T (Syscall-Times) opció. Ez azt mutatja, hogy az egyes rendszerhíváson belül töltött idő időtartama.

 Strace -t ./stex

Az időtartamok az egyes rendszerhívásvonal végén jelennek meg.

Ahhoz, hogy megnézze az időt, amikor az egyes rendszerhívást hívták, használja a -tt (Absolute Timestamps) opció. Ez mutatja a "fali óra" időt, microsecond felbontással.

 Strace -tt ./stex

Az idők az egyes sorok kezdetén jelennek meg.

Futási folyamat nyomon követése

Ha a nyomon követni kívánt folyamat már fut, akkor még mindig csatolhatja csík neki. Ehhez ismernie kell a folyamatazonosítót. tudsz használat ps val vel grep ezt megtalálja. Van Firefox futunk. Hogy megtudja a firefox folyamat, használhatjuk ps és átmegy grep .

 PS -E | Grep Firefox 

Láthatjuk, hogy a folyamatazonosító 8483. A -P (Folyamatazonosító) lehetőség, hogy megmondja csík melyik eljárást kell csatolni. Ne feledje, hogy meg kell használnia sudo :

 Sudo Strace -P 8483 

Látni fog egy értesítést csík csatolta magát a folyamathoz, majd a rendszer nyomkövetési hívásai a szokásos módon jelennek meg.

Jelentés létrehozása

Az -C (csak összefoglaló) opció okok csík Jelentés nyomtatása. Táblázatot hoz létre a nyomkövető program által készített rendszerhívásokról.

 Strace -c ./stex

Az oszlopok:

  • % idő : A százalékos végrehajtási idő, hogy töltötte az egyes rendszerekben hívást.
  • másodperc : A teljes idő, másodpercben kifejezve és ezredmásodperc töltött minden egyes rendszer hívást.
  • usecs / hívás : Az az átlagos idő mikromásodpercben töltött minden egyes rendszer hívást.
  • hívások : Az a szám, ahányszor minden rendszer hívás kivégezték.
  • hibák : A meghibásodások számát minden egyes rendszer hívást.
  • syscall : A rendszer neve hívást.

Ezek az értékek nullák triviális programok végrehajtását és megszünteti gyorsan. Valós értékeket mutat programok csinálni valami értelmes, mint a bemutató alkalmazás.

Mély betekintést, Könnyen

Az csík kimenet meg tudja mutatni, hogy melyik rendszer hívásokat tesznek, melyek tesznek többször, és mennyi végrehajtási idő költik belül kernel oldali kódot. Ez nagyszerű információkat. Gyakran előfordul, hogy amikor megpróbálja megérteni, mi folyik benne a kódot, akkor könnyű elfelejteni, hogy a bináris kölcsönhatásban szinte nonstop a kernel, hogy végre sok a funkciókat.

Használva csík Látod a teljes képet.


Linux - Most Popular Articles

, hogyan kell használni a DB Browser for SQLite Linux

Linux Dec 16, 2024

Fatmawati Achmad Zaenuri / Shutterstock DB Böngésző SQLite lehetővé teszi, hogy megtekintheti és szerkesztheti a SQLite adatbázisok Linux. Akko..


, hogyan kell használni „Itt Documents” a Bash Linux

Linux Mar 31, 2025

Fatmawati Achmad Zaenuri / Shutterstock A furcsa nevű „itt dokumentumok” engedi használni bemeneti / kimeneti átirányítást belül Bash script Linux. ..


Hogyan frissítése Ubuntu Linux

Linux Aug 27, 2025

tomeqs / Shutterstock.com Szükség van a legújabb és legnagyobb Ubuntu? Nem kell, hogy egy Linux pro. Olvasson tovább, hogy felfedezzék, hogyan lehet fr..


Hogyan Roll Back Kernel Linux operációs rendszer

Linux Sep 30, 2025

fatmawati Achmad Zaenuri / Shutterstock.com Ha a Linux PC hirtelen gondjai frissítés után a rendszer, akkor lehetséges egy Linux kernel friss�..


A KDE Csatlakozás végül jön az iPhone

Linux Oct 26, 2025

Kde Ha könnyed módot keres, hogy az iPhone-t jól játsszon az Önvel Kde asztali , ma a szerencsés napod, mint A KDE Connect végre iPhone alkalmazá..


Hogyan letöltése és telepítése Steam Linux

Linux Oct 9, 2025

Postmodern stúdió / shutterstock.com Szóval, meg akarod próbálni a játékot Linux ? Ebben a cikkben, nézzük meg, hogyan kell telepíteni a S..


Tud Linux telepítése egy M1 Apple Mac Silicon?

Linux Nov 12, 2024

Nem mindenki vásárol Mac-t, hogy kizárólag MacOS-t futtatja. A rossz hír az, hogy a november 2021-től az Apple Silicon natív Linux támogatása még nem lehetséges. Előrehaladá..


Hogyan lehet megölni egy Linux folyamatot portszám szerint

Linux Oct 4, 2025

A Linux folyamat megöléséhez szüksége van az azonosítójára vagy a nevére. Ha csak tudod, hogy a port használja, akkor megölheti még? Igen, többféle módon. A folyamatok meg�..


Kategóriák