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 -y2: „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 strace3: „Arch Linux“ („Pacman“)
Arch Linux vartotojams strace galite įdiegti naudodami komandą:
pacmanas -S straceDabar, 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.
- Sistemos skambučio pavadinimas
- Skliausteliuose pateikiami sistemos iškvietimui pateikti argumentai.
- Grąžinimo vertė iš sistemos skambučio
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 apache2Tai 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_traceKai 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.