RHCSA seeria: Protsessijuhtimine RHEL 7-s: alglaadimine, seiskamine ja kõik vahepealne - 5. osa


Alustame seda artiklit üldise ja lühikese ülevaatega selle kohta, mis juhtub pärast seda, kui vajutate RHEL 7 serveri sisselülitamiseks toitenuppu, kuni teile kuvatakse käsurea liideses sisselogimisekraan.

Pange tähele, et:

1. samad aluspõhimõtted kehtivad, võib-olla väiksemate muudatustega, ka teiste Linuxi distributsioonide puhul ja
2. järgmine kirjeldus ei ole mõeldud alglaadimisprotsessi ammendava selgituse esitamiseks, vaid ainult põhialuste selgitamiseks.

Linuxi alglaadimise protsess

1. POST (Power On Self Test) lähtestab ja teostab riistvarakontrolli.

2. Kui POST on lõppenud, edastatakse süsteemijuhtimine esimese astme alglaadurile, mis on salvestatud kas ühe kõvaketta alglaadimissektorisse (vanemate süsteemide jaoks, mis kasutavad BIOS-i ja MBR-i) või spetsiaalsele (U) EFI-le. partitsioon.

3. Esimese astme alglaadur laadib seejärel teise astme alglaaduri, enamasti GRUB (GRand Unified Boot Loader), mis asub sees/boot, mis omakorda laadib kerneli ja algse RAM-põhise failisüsteemi (tuntud ka kui initramfs) , mis sisaldab programme ja binaarfaile, mis teevad vajalikud toimingud, et lõpuks juurfailisüsteem kokku panna

4. Meile esitatakse pritsmekraan, mis võimaldab meil käivitamiseks valida operatsioonisüsteemi ja kerneli:

5. Tuum seadistab süsteemi külge kinnitatud riistvara ja kui juurfailisüsteem on paigaldatud, käivitab protsess PID 1-ga, mis omakorda algatab muud protsessid ja esitab meile sisselogimisviiba.

Märkus. Kui soovime seda teha hiljem, saame selle protsessi eripära uurida käsuga dmesg ja filtreerida selle väljund tööriistade abil, mida oleme selle seeria eelmistes artiklites selgitanud.

Ülaltoodud näites kasutasime tuntud käsku ps praeguste protsesside loendi kuvamiseks, mille vanemprotsess (või teisisõnu protsess, mille abil need käivitati) on systemd (süsteemi- ja teenushaldur, mille enamik kaasaegseid Linuxi distributsioone on vahetanud to) süsteemi käivitamisel:

# ps -o ppid,pid,uname,comm --ppid=1

Pidage meeles, et lipp -o (lühidalt –formaat) võimaldab teil esitada ps väljundi teie vajadustele vastavas vormingus, kasutades man ps-s jaotises STANDARDVORMINGU SPETSIFIKAATORID täpsustatud märksõnu.

Teine juhtum, kus soovite vaikeväljundi asemel määratleda ps väljund, on see, kui peate leidma protsessorid, mis põhjustavad olulist protsessori ja/või mälu koormust, ja sortima need vastavalt:

# ps aux --sort=+pcpu              # Sort by %CPU (ascending)
# ps aux --sort=-pcpu              # Sort by %CPU (descending)
# ps aux --sort=+pmem              # Sort by %MEM (ascending)
# ps aux --sort=-pmem              # Sort by %MEM (descending)
# ps aux --sort=+pcpu,-pmem        # Combine sort by %CPU (ascending) and %MEM (descending)

Sissejuhatus SystemD-sse

Vähesed otsused Linuxi maailmas on tekitanud rohkem poleemikat kui süsteemide vastuvõtmine suuremate Linuxi distributsioonide poolt. Systemd toetab peamiste eelistena järgmisi fakte:

Loe ka: lugu 'init' ja 'systemd' taga

1. Systemd võimaldab süsteemi käivitamisel paralleelselt teha rohkem töötlusi (erinevalt vanemast SysVinitist, mis kipub alati olema aeglasem, kuna see käivitab protsessid ükshaaval, kontrollib, kas üks sõltub teisest, ja ootab siis deemonite käivitamist, nii et võib alata rohkem teenuseid) ja

2. See töötab jooksva süsteemi dünaamilise ressursside haldamisena. Seega käivitatakse teenused vajaduse korral (et vältida süsteemiressursside tarbimist, kui neid ei kasutata), selle asemel et käivitada käivitamise ajal ilma mõjuva põhjuseta.

3. Tagurpidi ühilduvus SysViniti skriptidega.

Systemd juhib utiliit systemctl. Kui olete pärit SysViniti taustast, on tõenäoline, et olete tuttav:

  1. hooldustööriista, mida nendes vanemates süsteemides kasutati SysViniti skriptide haldamiseks, ja
  2. utiliit chkconfig, mille eesmärk oli süsteemiteenuste käitustaseme teabe värskendamine ja päringute esitamine.
  3. väljalülitamine, mida peate olema mitu korda töötanud süsteemi taaskäivitamiseks või peatamiseks

Järgmine tabel näitab nende pärandtööriistade ja systemctl kasutamise sarnasusi:

Systemd tutvustas ka üksuste (mis võivad olla kas teenus, liitumispunkt, seade või võrgupesa) ja sihtmärkide mõisteid (nii suudab systemd käivitada korraga mitu seotud protsessi ja neid võib kaaluda - kuigi mitte võrdne - nagu SysViniti-põhiste süsteemide käitustasemete ekvivalent.

Summeerida

Muud protsessihaldusega seotud ülesanded hõlmavad, kuid ei pruugi nendega piirduda, võimalust:

See saavutatakse renice-utiliidi kaudu, mis muudab ühe või mitme töötava protsessi ajakava prioriteeti. Lihtsamalt öeldes on ajakava prioriteet funktsioon, mis võimaldab kernelil (olemas versioonides => 2.6) eraldada süsteemi ressursse vastavalt antud protsessi määratud täitmisprioriteedile (aka kenaks, vahemikus -20 kuni 19).

Renice'i põhiline süntaks on järgmine:

# renice [-n] priority [-gpu] identifier

Ülaltoodud üldises käsus on esimene argument kasutatava prioriteediväärtusena, teist argumenti saab aga tõlgendada protsessi ID-dena (mis on vaikeseade), protsessigruppide ID-dena, kasutajatunnustena või kasutajanimedena. Tavakasutaja (va juur) saab muuta ainult talle kuuluva protsessi ajakava prioriteeti ja tõsta ainult kenuse taset (mis tähendab vähem süsteemiressursside kasutamist).

Täpsemalt öeldes annab protsessi tapmine õiguse saata sellele signaal kas käsu kill või pkill kaudu rakenduse lõpetamiseks (SIGTERM = 15) või viivitamatult (SIGKILL = 9).

Nende kahe tööriista erinevus seisneb selles, et esimest kasutatakse konkreetse protsessi või protsessigrupi täielikuks lõpetamiseks, teine aga võimaldab teil seda teha nime ja muude atribuutide põhjal.

Lisaks on pkill komplektis pgrepiga, mis näitab teile PID-sid, mida pkilli kasutamine mõjutab. Näiteks enne jooksmist:

# pkill -u gacanepa

Võib olla kasulik vaadata pilguga, millised on gacanepale kuuluvad PID-d:

# pgrep -l -u gacanepa

Vaikimisi saadavad nii kill kui pkill signaali SIGTERM protsessile. Nagu me eespool mainisime, võib seda signaali eirata (kui protsess lõpetab selle täitmise või lõplikult), nii et kui peate tõsiselt peatama töötava protsessi mõjuva põhjusega, peate käsureal määrama signaali SIGKILL:

# kill -9 identifier               # Kill a process or a process group
# kill -s SIGNAL identifier        # Idem
# pkill -s SIGNAL identifier       # Kill a process by name or other attributes 

Järeldus

Selles artiklis oleme selgitanud RHEL 7 süsteemi alglaadimise põhitõdesid ja analüüsinud mõningaid tööriistu, mis on saadaval protsesside haldamisel tavaliste utiliitide ja systemd-spetsiifiliste käskude abil.

Pange tähele, et see loend ei ole mõeldud kõigi selle teema kellade ja vilede katmiseks, nii et lisage julgelt oma artiklile oma eelistatud tööriistad ja käsud, kasutades allolevat kommentaarivormi. Samuti on teretulnud küsimused ja muud kommentaarid.