Mfululizo wa RHCSA: Usimamizi wa Mchakato katika RHEL 7: Anzisha, Zima, na Kila Kitu Kilicho Kati - Sehemu ya 5


Tutaanzisha makala haya kwa masahihisho ya jumla na mafupi ya kile kinachotokea tangu unapobofya kitufe cha Kuwasha/kuzima ili kuwasha seva yako ya RHEL 7 hadi uwasilishwe skrini ya kuingia katika kiolesura cha mstari wa amri.

Tafadhali kumbuka kuwa:

1. kanuni sawa za kimsingi zinatumika, na labda marekebisho madogo, kwa usambazaji mwingine wa Linux pia, na
2. maelezo yafuatayo hayakusudiwi kuwakilisha maelezo kamili ya mchakato wa kuwasha, lakini mambo ya msingi pekee.

Mchakato wa Boot ya Linux

1. POST (Power On Self Test) huanzisha na kufanya ukaguzi wa maunzi.

2. POST inapokamilika, udhibiti wa mfumo hupitishwa kwa kipakiaji cha boot cha hatua ya kwanza, ambacho huhifadhiwa kwenye sekta ya boot ya moja ya diski ngumu (kwa mifumo ya zamani inayotumia BIOS na MBR), au kujitolea (U) EFI. kizigeu.

3. Kipakiaji cha hatua ya kwanza kisha hupakia kipakiaji cha hatua ya pili, kwa kawaida GRUB (GRand Unified Boot Loader), ambayo hukaa ndani/boot, ambayo nayo hupakia kernel na mfumo wa awali wa faili unaotegemea RAM (pia hujulikana kama initramfs. , ambayo ina programu na faili za binary ambazo hufanya vitendo muhimu vinavyohitajika ili hatimaye kuweka mfumo halisi wa faili).

4. Tumewasilishwa na skrini ya Splash inayoturuhusu kuchagua mfumo wa uendeshaji na kernel ili kuwasha:

5. Kernel husanidi maunzi yaliyoambatishwa kwenye mfumo na mara tu mfumo wa faili wa mizizi umewekwa, huzindua mchakato na PID 1, ambayo nayo itaanzisha michakato mingine na kutuonyesha swali la kuingia.

Kumbuka: Kwamba ikiwa tunataka kufanya hivyo baadaye, tunaweza kuchunguza maalum ya mchakato huu kwa kutumia amri ya dmesg na kuchuja matokeo yake kwa kutumia zana ambazo tumeelezea katika makala zilizopita za mfululizo huu.

Katika mfano hapo juu, tulitumia amri ya ps inayojulikana sana kuonyesha orodha ya michakato ya sasa ambayo mchakato wa mzazi (au kwa maneno mengine, mchakato uliozianzisha) umepangwa (mfumo na meneja wa huduma ambayo usambazaji wa kisasa wa Linux umebadilisha. kwa) wakati wa kuanzisha mfumo:

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

Kumbuka kwamba -o bendera (fupi kwa -format) hukuruhusu kuwasilisha towe la ps katika umbizo lililobinafsishwa ili kukidhi mahitaji yako kwa kutumia manenomsingi yaliyoainishwa katika sehemu ya SPECIFIERS YA FORMAT SANIFU katika man ps.

Kesi nyingine ambayo utataka kufafanua matokeo ya ps badala ya kwenda na chaguo-msingi ni wakati unahitaji kupata michakato ambayo inasababisha CPU kubwa na/au mzigo wa kumbukumbu, na upange ipasavyo:

# 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)

Utangulizi wa SystemD

Maamuzi machache katika ulimwengu wa Linux yamesababisha mabishano zaidi kuliko kupitishwa kwa mfumo na usambazaji mkubwa wa Linux. Jina la watetezi wa Systemd kama faida zake kuu ukweli ufuatao:

Soma Pia: Hadithi Nyuma ya 'init' na 'systemd'

1. Systemd inaruhusu usindikaji zaidi kufanywa sambamba wakati wa kuanzisha mfumo (kinyume na SysVinit ya zamani, ambayo daima huwa polepole kwa sababu huanza michakato moja baada ya nyingine, hukagua ikiwa moja inategemea nyingine, na kisha kungoja daemons kuzindua hivyo. huduma zaidi zinaweza kuanza), na

2. Inafanya kazi kama usimamizi madhubuti wa rasilimali katika mfumo unaoendesha. Kwa hivyo, huduma zinaanzishwa inapohitajika (ili kuepuka kutumia rasilimali za mfumo ikiwa hazitumiwi) badala ya kuzinduliwa bila sababu halali wakati wa boot.

3. Utangamano wa Nyuma na hati za SysVinit.

Systemd inadhibitiwa na matumizi ya systemctl. Ikiwa unatoka kwenye usuli wa SysVinit, kuna uwezekano kwamba utafahamu:

  1. zana ya huduma, ambayo -katika mifumo hiyo ya zamani- ilitumika kudhibiti hati za SysVinit, na
  2. huduma ya chkconfig, ambayo ilitumikia madhumuni ya kusasisha na kuuliza maelezo ya kiwango cha kukimbia kwa huduma za mfumo.
  3. kuzima, ambayo lazima uwe umetumia mara kadhaa ama kuanzisha upya au kusimamisha mfumo unaoendesha.

Jedwali lifuatalo linaonyesha kufanana kati ya utumiaji wa zana hizi za urithi na systemctl:

Systemd pia ilianzisha dhana za vitengo (ambazo zinaweza kuwa huduma, mahali pa kupanda, kifaa, au tundu la mtandao) na malengo (ambayo ni jinsi systemd inavyoweza kuanza mchakato kadhaa unaohusiana kwa wakati mmoja, na inaweza kuzingatiwa - ingawa sio sawa- kama sawa na viwango vya kukimbia katika mifumo inayotegemea SysVinit.

Muhtasari

Kazi zingine zinazohusiana na usimamizi wa mchakato ni pamoja na, lakini zinaweza zisiwe na kikomo, uwezo wa:

Hii inakamilishwa kupitia matumizi ya urenice, ambayo hubadilisha kipaumbele cha kuratibu cha mchakato mmoja au zaidi unaoendesha. Kwa maneno rahisi, kipaumbele cha kuratibu ni kipengele kinachoruhusu kernel (iliyopo katika matoleo => 2.6) kutenga rasilimali za mfumo kulingana na kipaumbele cha utekelezaji kilichopewa (aka uzuri, katika safu kutoka -20 hadi 19) ya mchakato fulani.

Syntax ya msingi ya renice ni kama ifuatavyo:

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

Katika amri ya jumla iliyo hapo juu, hoja ya kwanza ni thamani ya kipaumbele itakayotumika, ilhali hoja nyingine inaweza kufasiriwa kama vitambulisho vya mchakato (ambao ni mpangilio chaguomsingi), vitambulisho vya kikundi cha mchakato, vitambulisho vya watumiaji au majina ya watumiaji. Mtumiaji wa kawaida (mbali na mzizi) anaweza tu kurekebisha kipaumbele cha kuratibu cha mchakato anaomiliki, na kuongeza kiwango cha uzuri tu (ambayo inamaanisha kuchukua rasilimali kidogo za mfumo).

Kwa maneno sahihi zaidi, kuua mchakato huruhusu kutuma ishara ili ama kumaliza utekelezaji wake kwa uzuri (SIGTERM=15) au mara moja (SIGKILL=9) kupitia amri ya kuua au ya pkill.

Tofauti kati ya zana hizi mbili ni kwamba ya kwanza hutumiwa kusitisha mchakato maalum au kikundi cha mchakato kabisa, wakati wa mwisho hukuruhusu kufanya vivyo hivyo kulingana na jina na sifa zingine.

Kwa kuongeza, pkill inakuja ikiwa na pgrep, ambayo inakuonyesha PID ambazo zitaathirika lazima pkill itumike. Kwa mfano, kabla ya kukimbia:

# pkill -u gacanepa

Inaweza kuwa muhimu kutazama kwa muhtasari ambazo ni PID zinazomilikiwa na gacanepa:

# pgrep -l -u gacanepa

Kwa chaguo-msingi, kill na pkill hutuma ishara ya SIGTERM kwa mchakato. Kama tulivyotaja hapo juu, ishara hii inaweza kupuuzwa (wakati mchakato unamaliza utekelezaji wake au kwa uzuri), kwa hivyo wakati unahitaji sana kusimamisha mchakato unaoendelea kwa sababu halali, utahitaji kutaja ishara ya SIGKILL kwenye safu ya amri:

# 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 

Hitimisho

Katika makala hii tumeelezea misingi ya mchakato wa boot katika mfumo wa RHEL 7, na kuchambua baadhi ya zana ambazo zinapatikana ili kukusaidia na kusimamia michakato kwa kutumia huduma za kawaida na amri maalum za systemd.

Kumbuka kuwa orodha hii haikusudiwa kufunika kengele na filimbi zote za mada hii, kwa hivyo jisikie huru kuongeza zana na amri zako unazopendelea kwenye nakala hii ukitumia fomu ya maoni hapa chini. Maswali na maoni mengine pia yanakaribishwa.