Linux komandas

Kā lietot Strace uz Linux

Kā lietot Strace uz Linux
Strādājot ar Linux sistēmām, jums bieži būs jāpārbauda un jāsaprot procesu veiktās darbības un to izpildes veiktie sistēmas izsaukumi.

Runājot par šādu uzdevumu veikšanu, Linux kodols nodrošina tādas funkcijas kā ptrace atkļūdot un diagnosticēt procesus.

Šajā rakstā ir apspriests, kā izmantot strace rīku, lai izsekotu, uzraudzītu un atkļūdotu procesus, kas mijiedarbojas ar kodolu.

Kas ir sistēmas zvani?

Pirms mēs apspriedīsim, kā lietot strace, jums ir jāsaprot, ko mēs meklējam un kā viņi darbojas. Tas nozīmē, ka mums būtu jāpārskata Linux sistēmas zvanu pamati.

Sistēmas zvans ir programmatiska metode, ar kuras palīdzību programma var pieprasīt pakalpojumu no sistēmas kodola. Tas ir process, ko izmantosim, lai pārbaudītu darbības starp lietotāja procesiem un Linux kodolu.

Jebkurā laikā lietotājs izpilda programmu, kas padara lasīšanu, rakstīšanu, nogalināšanu, iziešanu, saistīšanu utt., pēc pieprasījuma viņi veic sistēmas zvanu. Programmas izmanto plašu sistēmu izsaukumu klāstu, lai veiktu dažādus uzdevumus, piemēram, tīkla izveidi, failu lasīšanu un rakstīšanu, procesu inicializēšanu un pārtraukšanu un daudz ko citu.

Padomājiet par sistēmas izsaukumiem par funkcijām - viņi izturas līdzīgi, jo viņi var pieņemt argumentus un atgriezt vērtības. Galvenā atšķirība starp sistēmas zvaniem un normālu darbību ir tā, ka sistēmas zvani var tieši mijiedarboties ar kodolu. Sistēmas zvanu izmantošana a slazdošanas mehānisms lai pārvietotos starp lietotāja telpu un kodolu.

Linux sistēmā šo mehānismu no lietotājiem labi slēpj tādas bibliotēkas kā Glibc.

PIEZĪME: Sistēmas zvaniem un kodola mijiedarbībai ir daudz vairāk nekā tas, ko mēs esam apsprieduši šajā apmācībā. Lūdzu, skatiet rokasgrāmatas lapas, lai iegūtu vairāk informācijas.

https: // linkfy.to / syscalls

https: // linkfy.to / trapmanual

Kā instalēt strace uz Linux

Lai gan lielākajos Linux izplatījumos strace rīki pēc noklusējuma nav iepriekš instalēti, tas ir pieejams lielākajā daļā šo izplatījumu oficiālo krātuvju; to var viegli instalēt, izmantojot noklusējuma pakotņu pārvaldniekus.

PIEZĪME: Lai gan mēs neaprobežosimies ar to, kā instalēt strace visās sistēmās, mēs apspriedīsim, kā to izdarīt, ar lielākajiem pakotņu pārvaldniekiem, piemēram, apt, dnf, pacman un yum

1: Debian (apt) instalēšana

Instalējiet strace, izmantojot komandu:

apt-get install strace -y

2: RedHat ģimene (dnf un yum)

Lai instalētu strace, izmantojot yum pakotņu pārvaldnieku, ievadiet komandu:

yum instalēt strace

Dnf pakotņu pārvaldniekam ievadiet komandu:

dnf instalēt strace

3: Arch Linux (Pacman)

Arch Linux lietotājiem strace var instalēt ar komandu:

pacman -S strace

Tagad, kad strace ir uzstādīta un darbojas, mēs varam turpināt darbu un uzzināt, kā to izmantot

Pamata strasas lietošana: pamācība

Apspriedīsim pamata strace lietojumu un sapratīsim komandas pamata izvadi un to, kā mēs to varam izmantot.

PIEZĪME: Strace izeja, piemēram, sistēmas izsaukumu nosaukumi, atbilstošie argumenti un atgriešanās vērtības, tiek apstrādāti standarta kļūdas faila deskriptors (stderr).

Pamata veids, kā izmantot strace, ir izsaukt strace lietderību, kam seko programmas nosaukums, kuras uzvedību mēs vēlamies saprast.

Šeit ir piemērs, izmantojot komandu ls:

Oho! Tas ir daudz izejas vienkāršai komandai, piemēram, ls.

Lai gan mēs nevaram apspriest visu strace komandas iznākumu, mēs varam destilēt un saprast tā nozīmi.

Ja ņemat vērā pirmo rindu izejas augšpusē, pamanīsit šādas funkcijas.

Tādējādi pirmajā rindā sistēmas izsaukums tiek izpildīts (izpilda programmu, izmantojot norādīto argumentu masīvu), sistēmas izsaukuma argumenti ir (“/ bin / ls”, [“ls”, “/”], 0x7fffc4b277a8 / * 13 vars * /) un atgriešanās vērtība 0.

https: // linkfy.izpildīt / izpildīt

Execve sistēmas izsaukumi izpilda bināro, kuru mēs vēlamies izmantot, šajā gadījumā atrodas (/ bin / ls), un argumentu masīvs ir ceļš, kuru mēs vēlamies uzskaitīt saturā.

Jūs pamanīsit arī apzīmējumu, kas pievienots ar slīpsvītru uz priekšu un zvaigznīti. Mūsu piemērs:

/ * 13 varianti * /

Iepriekš minētā izeja norāda mainīgo lielumu skaitu, kas pievienoti procesa izsaukšanas rezultātā. Videi, kas atrodas funkcijas execv iekšienē, var piekļūt, izmantojot vides ārējo mainīgo, kas definēts kā:

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

Galīgā izeja ir atgriešanās vērtība, kas šajā gadījumā ir 0.

Jūs arī pamanīsit, ka lielākajai daļai strace izejas līniju ir līdzīgs paraugs, kuru mēs apspriedām iepriekš.

Kā izsekot noteiktiem sistēmas zvaniem

Lai gan strace sniedz daudz informācijas par programmu sistēmas zvaniem, vairums gadījumu jūs aicinās filtrēt konkrētus sistēmas zvanus. Lai to izdarītu, mēs nododam -e karogu komandai strace, kam seko mums vajadzīgā sistēmas zvana nosaukums.

Kā būtu, ja aplūkotu lasītās sistēmas izsaukumus pēc komandas ls. Piemēram:

strace -e lasīt ls

Jūs ievērosiet, ka tas parāda tikai lasītus sistēmas zvanus.

Izlasītajā sistēmas izsaukumā tiek pieņemti trīs argumenti: faila deskriptors, buferis un baitu skaits. Tad sistēmas izsaukums līdz nodotajiem faila deskriptora argumentiem nolasa līdz skaita baitiem buferī.

https: // linkfy.to / readsysall

Sistēmas izsaukumu kopsavilkums

Strace ļauj mums iegūt arī procesa veikto sistēmas zvanu kopsavilkumu. Ievadot argumentu -c vai -summary-only, mēs varam iegūt tādu izvadi kā parādīts zemāk:

Komanda filtrē un sakārto izvadi efektīvāk nekā parastā strace izeja. Lai iegūtu gan kopsavilkumu, gan parasto strace izvadi, nododiet argumentu -C.

Kā lietot Strace ar darbības procesiem

Citreiz jums būs nepieciešama darbības procesa izsekošana. Līdz šim brīdim mēs izmantojām tikai vienu komandu strace. Lai izsekotu darbojošos procesu, mēs varam izmantot argumentu -p, kam seko procesa ID (PID) process, lai tam pievienotu saiti.

Darbojošā procesa PID varat iegūt, izmantojot top un grep, ps, htop, pidof vai citus sistēmas uzraudzības rīkus.

Piemēram, lai iegūtu Apache procesa PID, mēs varam izmantot:

ps -ax | grep -i apache2

Tam vajadzētu piešķirt apache2 procesa PID (šajā gadījumā PID 3514), un mēs to varam izmantot, lai to piestiprinātu strace.

Tam vajadzētu parādīt izvadi, kas ir līdzīga zemāk redzamajai.

Strace nepārtraukti izsekos pievienotajam procesam un parādīs izvadi, kad pievienotais process veic sistēmas izsaukumus. Lai pārtrauktu izsekošanu, nospiediet taustiņu kombināciju CTRL + C, kas atdala procesu no sekcijas.

Kā saglabāt strace izvadi failos

Mēs varam arī novirzīt strace izvadi uz failu kā argumentu. Izmantojot argumentu -o karogu, kam seko faila ceļš, mēs varam saglabāt strace žurnālus.

Piemēram:

strace -p 3514 -o ~ / Desktop / apache_trace

Kad fails ir saglabāts, vēlāk varat to uzraudzīt un analizēt.

Secinājums

Šajā ceļvedī mēs uzzinājām, kā instalēt un izmantot strace galvenajos Linux izplatījumos. Tagad, kad esat sapratis sistēmas izsaukumus un procesu darbību, varat izmantot strace, lai uzraudzītu un atkļūdotu darbojošos sistēmas procesu.

Šajā apmācībā apgūtie jēdzieni ir ļoti noderīgi, galvenokārt tāpēc, ka jūs varat izmantot to, ko esat iemācījies, lai uzraudzītu, ja kāds traucē sistēmas procesus.

Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...
Kā izstrādāt spēli Linux
Pirms desmit gadiem maz Linux lietotāju varētu paredzēt, ka viņu iecienītā operētājsistēma kādu dienu būs populāra spēļu platforma komerciālām videosp...
Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...