„Linux“ komandos

Kaip naudoti „Strace“ sistemoje „Linux“

Kaip naudoti „Strace“ sistemoje „Linux“
Dirbdami su „Linux“ sistemomis, dažnai turėsite patikrinti ir suprasti procesų atliekamus veiksmus ir jų vykdymo atliktus sistemos iškvietimus.

Kai reikia atlikti tokias užduotis, „Linux“ branduolys teikia tokias funkcijas kaip ptrace derinti ir diagnozuoti procesus.

Šiame straipsnyje aptariama, kaip naudoti strace įrankį norint stebėti, stebėti ir derinti procesus, sąveikaujančius su branduoliu.

Kas yra sistemos skambučiai?

Prieš diskutuodami, kaip naudoti strace, turite suprasti, ko mes ieškome ir kaip jie veikia. Tai reiškia, kad turėtume pereiti „Linux System“ skambučių pagrindus.

Sistemos skambutis yra programinis metodas, per kurį programa gali prašyti paslaugos iš sistemos branduolio. Tai procesas, kurį naudosime tikrindami veiksmus tarp vartotojo procesų ir „Linux“ branduolio.

Bet kada vartotojas vykdo programą, leidžiančią skaityti, rašyti, nužudyti, išeiti, susieti ir pan., paprašius, jie skambina sistemai. Yra daugybė sistemos skambučių, kuriuos programos naudoja įvairioms užduotims atlikti, pvz., Tinklui kurti, skaityti ir rašyti į failus, inicijuoti ir užbaigti procesus ir daug daugiau.

Sistemos iškvietimus laikykite funkcijomis - jie elgiasi panašiai, nes gali priimti argumentus ir grąžinti vertes. Pagrindinis skirtumas tarp sistemos skambučių ir įprasto veikimo yra tas, kad sistemos skambučiai gali tiesiogiai sąveikauti su branduoliu. Sistemos skambučiai naudojami a spąstų mechanizmas naršyti tarp vartotojo vietos ir branduolio.

„Linux“ sistemoje šį mechanizmą nuo vartotojų gerai slepia tokios bibliotekos kaip „Glibc“.

PASTABA: Sistemos skambučiuose ir branduolio sąveikoje yra daug daugiau, nei aptarėme šioje pamokoje. Daugiau informacijos ieškokite vadovo puslapiuose.

https: // linkfy.į / sisteminius skambučius

https: // linkfy.to / trapmanual

Kaip įdiegti strace „Linux“

Nors pagrindiniuose „Linux“ paskirstymuose „strace“ įrankiai nėra numatyti iš anksto, jie yra prieinami daugumoje oficialių šių paskirstymų saugyklų; galite lengvai ją įdiegti naudodami numatytuosius paketų tvarkytuvus.

PASTABA: Nors neaptarsime, kaip įdiegti strace visose sistemose, aptarsime, kaip tai padaryti, su pagrindiniais paketų tvarkytuvais, tokiais kaip apt, dnf, pacman ir yum

1: „Debian“ (apt) diegimas

Įdiekite strace naudodami komandą:

apt-get install strace -y

2: „RedHat“ šeima (dnf ir yum)

Norėdami įdiegti strace naudodami „yum“ paketų tvarkytuvę, įveskite komandą:

yum įdiegti strace

„Dnf“ paketų tvarkyklėje įveskite komandą:

dnf install strace

3: „Arch Linux“ („Pacman“)

Arch Linux vartotojams strace galite įdiegti naudodami komandą:

pacmanas -S strace

Dabar, kai jūs turite įdiegtą ir paleistą strace, mes galime judėti toliau ir išmokti naudotis

Pagrindinis strace naudojimas: instrukcijos

Aptarkime pagrindinį strace naudojimą ir supraskime pagrindinę komandos išvestį ir kaip mes galime ją naudoti.

PASTABA: Strace išvestis, pvz., Sistemos iškvietimų pavadinimai, atitinkami argumentai ir grąžinimo vertės, yra tvarkomi standartinis klaidos failo aprašas (stderr).

Pagrindinis būdas naudoti strace yra paskambinti strace įrankiui, po kurio nurodomas programos pavadinimas, kurio elgesį norime suprasti.

Štai pavyzdys naudojant komandą ls:

Oho! Tai yra daug paprastos komandos, tokios kaip ls, išvesties.

Nors negalime aptarti visos strace komandos išvesties, galime distiliuoti ir suprasti jos prasmę.

Jei apsvarstysite pirmąją išvesties eilutę, pastebėsite šias funkcijas.

Taigi, pirmoje eilutėje sistemos iškvietimas yra vykdomas (vykdykite programą naudodami nurodytą argumentų masyvą), sistemos iškvietimo argumentai yra („/ bin / ls“, [„ls“, „/“], 0x7fffc4b277a8 / * 13 vars * /) ir grąžinimo vertė 0.

https: // linkfy.vykdyti / vykdyti

„Execve“ sistemos iškvietimai įvykdo norimą naudoti dvejetainį failą, esantį šiuo atveju (/ bin / ls), o argumentų masyvas yra kelias, kurį norime išvardyti.

Taip pat pastebėsite užrašą, pridedamą pasviruoju brūkšniu ir žvaigždute. Mūsų pavyzdys:

/ * 13 varsų * /

Pirmiau pateiktoje išvestyje nurodomas kintamųjų, pridėtų dėl proceso iškvietimo, skaičius. „Execv“ funkcijos aplinka pasiekiama naudojant išorinį aplinkos kintamąjį, apibrėžtą taip:

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

Galutinė išvestis yra grąžinimo vertė, kuri šiuo atveju yra 0.

Jūs taip pat pastebėsite, kad dauguma strace išvesties eilučių yra panašios, kaip aptarta aukščiau.

Kaip atsekti specifinius sistemos skambučius

Nors „strace“ suteikia daug informacijos apie programų sistemos skambučius, dauguma atvejų jūsų paprašys filtruoti konkrečius sistemos skambučius. Norėdami tai padaryti, mes perduodame -e vėliavą komandai strace, po kurios nurodomas mums reikalingo sistemos skambučio pavadinimas.

Kaip žiūrint į perskaitytą sistemą, reikalinga komanda ls. Pavyzdžiui:

strace -e skaityti ls

Jūs pastebėsite, kad tai rodo tik skaitytus sistemos skambučius.

Perskaitytas sistemos iškvietimas priima tris argumentus: failo aprašą, buferį ir baitų skaičių. Tada sistemos iškvietimas nuskaito iki buitų skaičiaus iš perduoto failo deskriptoriaus argumento į buferį.

https: // linkfy.skambinti / skaityti

Sistemos skambučių suvestinė

„Strace“ taip pat leidžia mums gauti proceso atliekamų sistemos skambučių suvestinę. Perdavę argumentą -c arba -summary, galime gauti tokią išvestį, kokia parodyta žemiau:

Komanda filtruoja ir sutvarko išvestį efektyviau nei įprasta strace išvestis. Norėdami gauti tiek suvestinę, tiek įprastą eilučių išvestį, perduokite argumentą -C.

Kaip naudoti „Strace“ vykdant procesus

Kitu metu jums reikės bėgimo proceso pėdsakų. Iki šio momento mes naudojome tik vieną komandą strace. Norėdami atsekti vykstantį procesą, galime naudoti argumentą -p, po kurio eina proceso ID (PID) procesas, kad prie jo pritvirtintumėte strasą.

Vykdomo proceso PID galite gauti naudodami top ir grep, ps, htop, pidof ar kitus sistemos stebėjimo įrankius.

Pvz., Norėdami gauti „Apache“ proceso PID, galime naudoti:

ps -ax | grep -i apache2

Tai turėtų suteikti jums apache2 proceso PID (šiuo atveju PID 3514), ir mes galime jį naudoti, kad pritvirtintumėte jį prie strace.

Tai turėtų parodyti išvestį, panašią į žemiau pateiktą.

„Strace“ nuolat stebės pridėtą procesą ir rodys išvestį, kai prijungtas procesas vykdo sistemos skambučius. Norėdami nutraukti pėdsaką, paspauskite CTRL + C, kuris atribos procesą nuo sekos.

Kaip išsaugoti sekos išvestį į failus

Mes taip pat galime nukreipti strace išvestį į failą kaip argumentą. Naudodami žymę -o, po kurios nurodomas failo kelias, kaip argumentą, galime išsaugoti sekų žurnalus.

Pavyzdžiui:

strace -p 3514 -o ~ / Desktop / apache_trace

Kai failas bus išsaugotas, vėliau galėsite jį stebėti ir analizuoti.

Išvada

Šiame vadove sužinojome, kaip įdiegti ir naudoti „strace“ pagrindiniuose „Linux“ paskirstymuose. Dabar, kai suprantate sistemos skambučius ir kaip veikia procesai, galite naudoti „strace“, norėdami stebėti ir derinti vykdomą sistemos procesą.

Šioje pamokoje išmoktos sąvokos yra labai naudingos, daugiausia dėl to, kad galite stebėti tai, ką išmokote, jei kas nors sugadina sistemos procesus.

Geriausi „Linux“ žaidimų distristai 2021 m
„Linux“ operacinė sistema nuėjo ilgą kelią nuo originalios, paprastos, serverio išvaizdos. Ši OS pastaraisiais metais nepaprastai patobulėjo ir dabar ...
Kaip užfiksuoti ir perduoti savo žaidimų sesiją sistemoje „Linux“
Anksčiau žaidimai buvo laikomi tik pomėgiu, tačiau laikui bėgant lošimų pramonė labai augo technologijų ir žaidėjų skaičiaus atžvilgiu. Žaidimų audito...
Geriausi žaidimai, kuriuos reikia žaisti naudojant rankos stebėjimą
„Oculus Quest“ neseniai pristatė puikią rankos stebėjimo be valdiklių idėją. „Oculus Quest“ rankų sekimo žaidimai iki šiol buvo ribojami, kai žaidimų ...