Bli ekspert på Linux-kommandolinjen · leksjon

Spore systemkall med strace og ltrace

Gå dypere inn i feilsøking ved å spore system- og bibliotekkallene en prosess utfører, slik at De nøyaktig ser hvor den stopper opp eller mislykkes.

Leksjon 4 av 413 trinn

Spore systemkall med strace og ltrace er en gratis leksjon i Bli ekspert på Linux-kommandolinjen på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bli ekspert på Linux-kommandolinjen, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bli ekspert på Linux-kommandolinjen inneholder totalt 4 leksjoner.

Når måleverdier ikke er nok

CPU-, minne- og I/O-verktøy forteller deg at noe går tregt. Hvis du vil finne ut hvorfor, sporer du hva en prosess faktisk ber kjernen om å gjøre. strace og ltrace gir deg innblikk i dette.

Hva strace viser

strace registrerer hvert systemkall: filåpninger, lesinger, nettverkssendinger og returverdiene deres, inkludert feil.

strace ls /tmp

Koble til en prosess som kjører

Bruk -p PID for å spore noe som allerede kjører, for eksempel en tjeneste som har låst seg.

sudo strace -p 4567

Filtrere bestemte systemkall

-e trace= begrenser utdataene til kallene du er interessert i, for eksempel bare filrelaterte kall.

strace -e trace=openat,read,write cat /etc/hostname

Finne manglende filer

Et klassisk bruksområde er å se hvilken fil et program ikke klarer å åpne. Se etter ENOENT (ingen slik fil) i utdataene.

strace -e trace=openat myapp 2>&1 | grep ENOENT

Oppsummere med -c

-c skriver ut en profil: hvilke systemkall som brukte mest tid, og hvor ofte hvert av dem ble kalt.

strace -c ls -R /usr/share

Måle tiden for kall

-T viser hvor lang tid hvert systemkall tok, og -t legger til tidsstempler, slik at du kan finne nøyaktig hvor en prosess blir blokkert.

strace -T -e trace=read myapp

Følge underprosesser

-f følger fork-operasjoner, slik at du også sporer underprosesser. Dette er viktig for servere som starter arbeidsprosesser.

strace -f -p 4567

Lagre utdata i en fil

Sporingsdata inneholder mye støy; -o skriver dem til en fil som du kan bruke grep på senere, uten å fylle terminalen.

strace -o trace.log -f myapp

ltrace for bibliotekkall

Mens strace viser kjernekall, viser ltrace bibliotekkall som malloc eller strcmp, noe som er nyttig ved feilsøking på logikknivå.

ltrace ./myprogram

En fremgangsmåte for feilsøking

Når en tjeneste låser seg: koble til med strace -f -p, se etter et systemkall som aldri returnerer (ofte et blokkert read eller connect), så har du funnet hvor det stopper.

Rask sjekk

Hva slags aktivitet viser strace først og fremst?

Oppsummering

Du kan nå spore en prosess på systemkallnivå:

  • strace cmd eller -p PID for å koble til
  • -e trace= filtrerer, -c lager profiler, og -T/-t måler tid
  • -f følger underprosesser, og -o lagrer utdata
  • ltrace viser bibliotekkall

Se etter feil som ENOENT eller et systemkall som aldri returnerer.

Gratis å komme i gang

Lær deg Bli ekspert på Linux-kommandolinjen med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Spore systemkall med strace og ltrace» gratis?

Ja – hele teksten i «Spore systemkall med strace og ltrace» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Bli ekspert på Linux-kommandolinjen-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Bli ekspert på Linux-kommandolinjen inneholder totalt 4 leksjoner.

Hva lærer jeg i «Spore systemkall med strace og ltrace»?

Gå dypere inn i feilsøking ved å spore system- og bibliotekkallene en prosess utfører, slik at De nøyaktig ser hvor den stopper opp eller mislykkes. Du øver på Bli ekspert på Linux-kommandolinjen med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Bli ekspert på Linux-kommandolinjen?

Ingen tidligere erfaring er nødvendig. Bli ekspert på Linux-kommandolinjen på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Spore systemkall med strace og ltrace»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Bli ekspert på Linux-kommandolinjen-leksjonen?

Ja. Alle Bli ekspert på Linux-kommandolinjen-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Overvåking av disk-I/O: `iostat`, `iotop`
  2. Verktøy for minne- og CPU-ytelse
  3. Avanserte teknikker for logging og feilsøking
  4. Spore systemkall med strace og ltrace
← Tilbake til Bli ekspert på Linux-kommandolinjen