Linuxi käsud

Strace'i kasutamine Linuxis

Strace'i kasutamine Linuxis
Linuxi süsteemidega töötades peate sageli kontrollima ja mõistma protsesside toiminguid ning nende käivitamisel tehtud süsteemikõnesid.

Selliste ülesannete täitmisel pakub Linuxi kernel selliseid funktsioone nagu ptrace protsesside silumiseks ja diagnoosimiseks.

Selles artiklis käsitletakse, kuidas strace-tööriista abil kerneliga suhtlevaid protsesse jälgida, jälgida ja siluda.

Mis on süsteemikõned?

Enne kui arutame strace'i kasutamist, peate mõistma, mida me otsime ja kuidas nad töötavad. See tähendab, et peaksime üle minema Linuxi süsteemi kõnede põhitõdedest.

Süsteemikõne on programmiline meetod, mille kaudu programm saab süsteemi tuumalt teenust taotleda. Seda protsessi kasutame kasutajaprotsesside ja Linuxi tuuma vaheliste toimingute kontrollimiseks.

Alati, kui kasutaja käivitab programmi, mis muudab lugemise, kirjutamise, tapmise, väljumise, sidumise jne., taotluse korral teevad nad süsteemikõne. Programmides on lai valik süsteemikõnesid mitmesuguste ülesannete täitmiseks, näiteks võrgu loomine, failidesse lugemine ja kirjutamine, protsesside lähtestamine ja lõpetamine ning palju muud.

Mõelge süsteemikõnedest kui funktsioonidest - nad käituvad sarnaselt - kuna nad saavad argumente aktsepteerida ja väärtusi tagastada. Peamine erinevus süsteemikõnede ja normaalse töö vahel on see, et süsteemikõned võivad otse kerneliga suhelda. Süsteemikõned kasutavad a lõksmehhanism kasutajaruumi ja kerneli vahel navigeerimiseks.

Linuxi süsteemis on seda mehhanismi kasutajate eest hästi varjatud sellised teegid nagu Glibc.

MÄRGE: Süsteemikõnedel ja kerneli interaktsioonidel on palju muud kui selles õpetuses käsitletud. Lisateavet leiate kasutusjuhendi lehekülgedelt.

https: // linkfy.to / syscalls

https: // linkfy.to / trapmanual

Kuidas installida strace Linuxi

Kuigi suuremates Linuxi distributsioonides pole strace-tööriistu vaikimisi eelinstallitud, on see saadaval enamikus nende jaotuste ametlikes hoidlates; saate selle hõlpsasti installida, kasutades vaikepaketi haldureid.

MÄRGE: Ehkki me ei käsitle strace'i installimist kõikidesse süsteemidesse, arutame seda suuremate paketihalduritega nagu apt, dnf, pacman ja yum

1: Debiani (apt) installimine

Paigaldage strace käsuga:

apt-get install strace -y

2: RedHati perekond (dnf ja yum)

Stringi installimiseks yumi paketihalduri abil sisestage käsk:

paigaldage strace

Dnf-paketihalduri jaoks sisestage käsk:

dnf installige strace

3: Arch Linux (pacman)

Arch Linuxi kasutajate jaoks saate strace installida käsuga:

pacman -S strace

Nüüd, kui strace on installitud ja töötab, saame edasi liikuda ja õppida kasutama

Peamine strace'i kasutamine: juhend

Arutleme strace'i põhikasutuse üle ja mõistame käsu põhiväljundit ning kuidas seda kasutada.

MÄRGE: Strace väljund nagu süsteemikõnede nimed, vastavad argumendid ja tagastusväärtused saavad hakkama standardne veafaili kirjeldaja (stderr).

Põhiline viis strace kasutamiseks on strace utiliidi kutsumine, millele järgneb programmi nimi, kelle käitumist me tahame mõista.

Siin on näide selle kohta, kasutades käsku ls:

Vau! See on palju lihtsa käsu, näiteks ls, väljundit.

Kuigi me ei saa arutada kogu strace-käsu väljundit, saame selle tähenduse destilleerida ja mõista.

Kui arvestate ülaltoodud väljundi esimest rida, märkate järgmisi funktsioone.

Seega esimesel real süsteemikõne on käivitatud (käivitage programm määratud argumentide massiivi abil), süsteemikõne argumendid on (“/ bin / ls”, [“ls”, “/”], 0x7fffc4b277a8 / * 13 vars * /) ja tagastusväärtus 0.

https: // linkfy.teostama / täitma

Execve-süsteemi kõned täidavad kahendfaili, mida me soovime kasutada, antud juhul asukohas (/ bin / ls), ja argumentide massiiv on tee, mida soovime sisu loetleda.

Samuti märkate tähist, mis on lisatud kaldkriipsu ja tärniga. Meie näide:

/ * 13 varsi * /

Ülaltoodud väljund näitab protsessi kutsumise tulemusena lisatud muutujate arvu. Execv-funktsiooni keskkonnale pääseb juurde keskkonna välise muutuja abil, mis on määratletud järgmiselt:

int main (int argc, char * argv [], char * envp [])

Lõplik väljund on tagastusväärtus, mis on antud juhul 0.

Samuti märkate, et enamik stressi väljundi ridu järgib sarnast mustrit, mida me eespool käsitlesime.

Konkreetsete süsteemikõnede jälgimine

Kuigi strace annab palju teavet programmide süsteemikõnede kohta, kutsub enamik juhtumeid teid üles filtreerima konkreetseid süsteemikõnesid. Selleks edastame -e lipu käsule strace, millele järgneb vajaliku süsteemikõne nimi.

Kuidas oleks, kui vaadata loetud süsteemi kõnesid käsule ls. Näiteks:

strace -e loe ls

Märkate, et see kuvab ainult loetud süsteemikõnesid.

Loetud süsteemikõnes aktsepteeritakse kolme argumenti: failikirjeldaja, puhver ja baitide arv. Seejärel loeb süsteemikõne loendatud baitidena edastatud faili kirjeldaja argumendist puhvrisse.

https: // linkfy.helistada / lugeda

Süsteemikõnede kokkuvõte

Strace võimaldab meil saada ka kokkuvõte protsessi poolt tehtud süsteemikõnedest. -C või -summary-argumenti edastades saame sellise väljundi nagu allpool näidatud:

Käsk filtreerib ja korraldab väljundi tõhusamalt kui tavaline strace'i väljund. Nii kokkuvõtte kui ka normaaljooneväljundi saamiseks edastage argument -C.

Strace'i kasutamine jooksvate protsessidega

Muul ajal vajate jooksva protsessi jälgi. Siiani oleme kasutanud strace ainult ühte käsku. Käimasoleva protsessi jälgimiseks saame stressi kinnitamiseks kasutada -p-argumenti, millele järgneb protsessi ID (PID) protsess.

Töötava protsessi PID saate ülemise ja grep, ps, htop, pidof või muude süsteemi jälgimistööriistade abil.

Näiteks apache-protsessi PID saamiseks võime kasutada järgmist:

ps -ax | grep -i apache2

See peaks andma teile apache2 protsessi PID (antud juhul PID 3514) ja me saame seda kasutada stressi kinnitamiseks.

See peaks kuvama väljundi, mis sarnaneb allpool näidatuga.

Strace jälgib pidevalt manustatud protsessi ja näitab väljundit, kui manustatud protsess teostab süsteemikõnesid. Jälje lõpetamiseks vajutage klahvikombinatsiooni CTRL + C, mis eraldab protsessi joost.

Kuidas salvestada strace'i väljund failidesse

Samuti võime strace'i väljundi suunata argumendina faili. Kasutades argumendina märgistust -o, millele järgneb faili tee, saame salvestada paisupäevikud.

Näiteks:

strace -p 3514 -o ~ / Desktop / apache_trace

Kui fail on salvestatud, saate seda hiljem jälgida ja analüüsida.

Järeldus

Selles juhendis õppisime, kuidas installida ja kasutada strace'i peamistes Linuxi distributsioonides. Nüüd, kui olete süsteemsetest kõnedest ja protsesside toimimisest aru saanud, saate strace'i abil jälgida jooksvat süsteemiprotsessi ja siluda seda.

Selles õpetuses õpitud mõisted on väga kasulikud peamiselt seetõttu, et saate kasutada õpitut jälgimiseks, kui keegi rikub süsteemiprotsesse.

Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...
Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...
Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...