Strace naredbe za rješavanje problema u Linux procesima

Kad pod našom odgovornošću imamo strojeve s operacijskim sustavima Linux, jedan od najkorisnijih i najpraktičnijih načina za ispravno upravljanje svakim od ovih aspekata je poznavanje različitih pomoćnih programa i naredbi koji postoje za njihovu implementaciju i podršku.

Ovoga puta Solvetic će govoriti o uslužnom programu za naredbeni redak pod nazivom strace i vidjet ćemo kako to može postati praktično za administraciju operacijskog sustava.

Što je stracestrace je koristan alat za naredbeni redak za dijagnosticiranje, podučavanje i pokretanje zadataka otklanjanja pogrešaka. Administratori sustava smatraju da je strace praktičan alat za rješavanje problema s programima za koje izvor nije dostupan jer ih nije potrebno ponovno kompajlirati da bi ih pratili.
Alat strace bilježi i bilježi sve sistemske pozive koje je proces obavio i signale koje proces prima, strace je zadužen za prikaz imena svakog sistemskog poziva zajedno s argumentima u zagradama i njegovu povratnu vrijednost na standardnu ​​pogrešku, izborno, bit će moguće preusmjeriti ga u datoteku.

1. Instalacija Strace


Za instaliranje strace moramo izvršiti jednu od sljedećih naredbi:
 sudo apt install strace (Debian ili Ubuntu) yum install strace (RedHat ili CentOS) dnf install strace (Fedora)
U slučaju pada programa ili neočekivanog ponašanja, bit će moguće pristupiti sistemskim pozivima kako biste stekli uvid u to što se točno dogodilo tijekom izvršavanja.

Sistemski pozivi mogu se kategorizirati u različite događaje: one koji se odnose na upravljanje procesima, one koji uzimaju datoteku kao argument, one koji uključuju mreže, raspodjelu memorije, signale, IPC, a također i sistemske pozive vezane za deskriptore datoteka.

2. Kako riješiti probleme procesa u Linuxu pomoću naredbi strace


Zatim ćemo vidjeti različite strace naredbe za rješavanje različitih problema procesa koji mogu nastati u Linuxu.

Praćenje poziva sustava sa straceOva nam opcija omogućuje praćenje svih sistemskih poziva koje izvršava naredba df, za to izvršavamo sljedeće:

 strace df -h

U ovom izlazu možemo vidjeti različite vrste sistemskih poziva koje izvršava naredba df, na primjer, jedan od njih je:

 open (" / etc / ld.so.cache", O_RDONLY | O_CLOEXEC) = 3
Gdje:
  • Otvoreno: To je vrsta sistemskog poziva
  • To je argument sistemskog poziva: "/etc/ld.so.cache", O_RDONLY | O_CLOEXEC
  • 3: To je povratna vrijednost sistemskog poziva

Pratite Linux PID proceseAko je proces već pokrenut u sustavu, bit će ga moguće pratiti kroz njegov PID na sljedeći način:

 sudo strace -c -p 465
Ovo će ispuniti zaslon kontinuiranim izlazom koji pokazuje da se sistemski pozivi obavljaju postupkom. Za kraj ćemo pritisnuti tipke Ctrl + C.

Dohvatite sažetak Linux procesaPomoću parametra -c bit će moguće generirati izvješće o ukupnom vremenu, pozivima i pogreškama za svaki sistemski poziv, za to ćemo izvršiti sljedeću sintaksu:

 sudo strace -c -p (PID)

Ispis pokazivača uputa tijekom sistemskog poziva. Opcija -i prikazuje pokazivač uputa u vrijeme svakog sistemskog poziva koji je napravio program.

 sudo strace -i df -h

Prikažite doba dana za svaku izlaznu liniju praćenjaSa strace je moguće ispisati doba dana za svaki redak u izlazu praćenja, koristeći zastavicu -t:

 sudo strace -t df -h

Prikaz vremena ispisa potrošenog na sistemske poziveDa bismo prikazali vremensku razliku između početka i kraja svakog sistemskog poziva programa, moramo koristiti opciju -T:

 sudo strace -T df -h

Pratite određene poziveNaredba trace = write poznata je kao kvalificirani izraz, gdje je trace kvalifikator (drugi uključuju signal, skraćenicu, detaljno, neobrađeno, čitanje ili pisanje). U tom slučaju upisujete vrijednost kvalifikatora. Sljedeća naredba prikazuje u stvarnom vremenu sistemski poziv za ispis df izlaza na standardni izlaz:

 sudo strace -e trace = write df -h

Neke dodatne naredbe koje možemo koristiti su:

 sudo strace -e trag = otvaranje, zatvaranje df -hsudo strace -e trag = otvaranje, zatvaranje, čitanje, pisanje df -hsudo strace -e trag = sve df -h

Iscrtajte sistemske pozive na temelju uvjetaOva naredba može se koristiti za praćenje svih sistemskih poziva koji uključuju upravljanje procesima, izvršit ćemo sljedeće:

 sudo strace -q -e trag = proces df -h

Sada, da bismo pratili sve sistemske pozive koji kao argument uzimaju naziv datoteke, izvest ćemo sljedeću naredbu:

 sudo strace -q -e trag = datoteka df -h

Za praćenje svih sistemskih poziva koji uključuju dodjelu memorije izvršit ćemo sljedeći redak:

 sudo strace -q -e trag = memorija df -h

Preusmjeri trag na izlaznu datotekuAko želimo u datoteku zapisati dodatne poruke poslane na standardnu ​​pogrešku, upotrijebit ćemo opciju -o. To znači da se na ekranu ispisuje samo izlaz naredbe:

 sudo strace -o df_debug.txt df -h

Ovu datoteku možemo vizualizirati izvršavanjem retka:

 mačka df_debug.txt

Implementirajte izlaz za otklanjanje pogrešaka straceAko želimo prikazati informacije o otklanjanju pogrešaka za alat strace, moramo upotrijebiti zastavicu -d:

 strace -d df -h

Straceova pomoćZa prikaz pomoći naredbe strace izvršit ćemo sljedeći redak:

 man strace

Ovako smo vidjeli kako strace postaje još jedna pomoć za upravljačke zadatke u Linux distribucijama.

wave wave wave wave wave