Kulma Trid Tkun Taf Dwar il-Proċessi fil-Linux [Gwida Komprensiva]
F'dan l-artikolu, se nimxu permezz ta 'fehim bażiku tal-proċessi u nħarsu fil-qosor lejn kif timmaniġġja l-proċessi fil-Linux billi tuża ċerti kmandi.
Proċess jirreferi għal programm fl-eżekuzzjoni; huwa eżempju ta 'programm li qed jaħdem. Huwa magħmul mill-istruzzjoni tal-programm, data moqrija minn fajls, programmi oħra jew input minn utent tas-sistema.
Hemm fundamentalment żewġ tipi ta 'proċessi fil-Linux:
- Proċessi ta' tagħrif miksub (magħrufa wkoll bħala proċessi interattivi) – dawn huma inizjalizzati u kkontrollati permezz ta' sessjoni terminali. Fi kliem ieħor, irid ikun hemm utent konness mas-sistema biex jibda proċessi bħal dawn; ma bdewx awtomatikament bħala parti mill-funzjonijiet/servizzi tas-sistema.
- Proċessi ta' sfond (imsejħa wkoll proċessi mhux interattivi/awtomatiċi) – huma proċessi mhux konnessi ma' terminal; ma jistennew ebda input mill-utent.
Dawn huma tipi speċjali ta 'proċessi fl-isfond li jibdew fl-istartjar tas-sistema u jibqgħu jaħdmu għal dejjem bħala servizz; ma jmutux. Jinbdew bħala kompiti tas-sistema (immexxija bħala servizzi), b'mod spontanju. Madankollu, jistgħu jiġu kkontrollati minn utent permezz tal-proċess init.
Ħolqien ta 'Proċessi fil-Linux
Proċess ġdid normalment jinħoloq meta proċess eżistenti jagħmel kopja eżatta tiegħu nnifsu fil-memorja. Il-proċess tat-tfal se jkollu l-istess ambjent bħall-ġenitur tiegħu, iżda n-numru tal-ID tal-proċess biss huwa differenti.
Hemm żewġ modi konvenzjonali użati biex jinħoloq proċess ġdid fil-Linux:
- L-użu tal-Funzjoni tas-Sistema() - dan il-metodu huwa relattivament sempliċi, madankollu, huwa ineffiċjenti u għandu ċerti riskji ta' sigurtà b'mod sinifikanti.
- L-użu tal-Funzjoni fork() u exec() – din it-teknika hija ftit avvanzata iżda toffri flessibilità, veloċità akbar, flimkien mas-sigurtà.
Kif Il-Linux Jidentifika l-Proċessi?
Minħabba li Linux hija sistema multi-user, jiġifieri utenti differenti jistgħu jkunu qed imexxu diversi programmi fuq is-sistema, kull istanza li taħdem ta 'programm għandha tkun identifikata unikament mill-kernel.
U programm huwa identifikat mill-ID tal-proċess tiegħu (PID) kif ukoll mill-ID tal-proċess ġenitur tiegħu (PPID), għalhekk il-proċessi jistgħu jiġu kkategorizzati aktar fi:
- Proċessi ġenitur – dawn huma proċessi li joħolqu proċessi oħra waqt ir-runtime.
- Proċessi tfal – dawn il-proċessi huma maħluqa minn proċessi oħra matul il-ħin tar-run.
Il-proċess tal-bidu huwa l-omm (ġenitur) tal-proċessi kollha fuq is-sistema, huwa l-ewwel programm li jiġi esegwit meta s-sistema Linux tibda; jimmaniġġja l-proċessi l-oħra kollha fuq is-sistema. Jinbeda mill-kernel innifsu, għalhekk fil-prinċipju m'għandux proċess ġenitur.
Il-proċess tal-bidu dejjem għandu ID tal-proċess ta' 1. Dan jiffunzjona bħala ġenitur adottiv għall-proċessi kollha orfni.
Tista 'tuża l-kmand pidof biex issib l-ID ta' proċess:
# pidof systemd # pidof top # pidof httpd
Biex issib l-ID tal-proċess u l-ID tal-proċess ġenitur tal-qoxra attwali, mexxi:
$ echo $$ $ echo $PPID
Ladarba inti tmexxi kmand jew programm (per eżempju cloudcmd - CloudCommander), se jibda proċess fis-sistema. Tista 'tibda proċess ta' tagħrif miksub (interattiv) kif ġej, se jkun imqabbad mat-terminal u utent jista 'jibgħat l-input tiegħu:
# cloudcmd
Biex tibda proċess fl-isfond (mhux interattiv), uża s-simbolu &
, hawnhekk, il-proċess ma jaqrax l-input minn utent sakemm jiġi mċaqlaq lejn it-tagħrif miksub.
# cloudcmd & # jobs
Tista 'wkoll tibgħat proċess fl-isfond billi tissospendih billi tuża [Ctrl + Z]
, dan jibgħat is-sinjal SIGSTOP lill-proċess, u b'hekk iwaqqaf l-operazzjonijiet tiegħu; isir idle:
# tar -cf backup.tar /backups/* #press Ctrl+Z # jobs
Biex tkompli tħaddem il-kmand sospiż hawn fuq fl-isfond, uża l-kmand bg:
# bg
Biex tibgħat proċess fl-isfond fit-tagħrif miksub, uża l-kmand fg flimkien mal-ID tax-xogħol hekk:
# jobs # fg %1
Tista 'tħobb ukoll: Kif tibda Kmand Linux fl-Isfond u Aqla' Proċess fit-Terminal
Matul l-eżekuzzjoni, proċess jinbidel minn stat għal ieħor skont l-ambjent/ċirkostanzi tiegħu. Fil-Linux, proċess għandu l-istati possibbli li ġejjin:
- Tħaddim – hawn jew qed jaħdem (huwa l-proċess attwali fis-sistema) jew lest biex jaħdem (qed jistenna li jiġi assenjat lil wieħed mis-CPUs).
- Stennija – f'dan l-istat, proċess qed jistenna li jseħħ avveniment jew riżors tas-sistema. Barra minn hekk, il-qalba tiddistingwi wkoll bejn żewġ tipi ta 'proċessi ta' stennija; proċessi ta’ stennija interruttibbli – jistgħu jiġu interrotti minn sinjali u proċessi ta’ stennija li ma jistgħux jiġu interrotti – qed jistennew direttament fuq kundizzjonijiet tal-hardware u ma jistgħux jiġu interrotti minn kwalunkwe avveniment/sinjal.
- Imwaqqaf - f'dan l-istat, proċess twaqqaf, ġeneralment billi jirċievi sinjal. Per eżempju, proċess li qed jiġi debugged.
- Zombie - hawn, proċess huwa mejjet, twaqqaf iżda għad għandu dħul fit-tabella tal-proċess.
Hemm diversi għodod tal-Linux biex tara/elenkar proċessi li qed jaħdmu fuq is-sistema, iż-żewġ tradizzjonali u magħrufa sew huma l-ogħla kmandi:
Hija turi informazzjoni dwar għażla tal-proċessi attivi fis-sistema kif muri hawn taħt:
# ps # ps -e | head
viżjoni dinamika f'ħin reali ta' sistema li taħdem kif muri fil-screenshot hawn taħt:
# top
Aqra dan għal aktar eżempji ta 'użu mill-aqwa: 12 Eżempji ta' Kmand TOP fil-Linux
Glances hija għodda ta' monitoraġġ tas-sistema relattivament ġdida b'karatteristiċi avvanzati:
# glances
Għal gwida komprensiva dwar l-użu, aqra: Glances – Għodda Avvanzata ta’ Monitoraġġ tas-Sistema ta’ Ħin Reali għal Linux
Hemm bosta għodod utli oħra ta 'monitoraġġ tas-sistema Linux li tista' tuża biex telenka proċessi attivi, iftaħ il-link hawn taħt biex taqra aktar dwarhom:
- 20 Għodda tal-Linja tal-Kmand biex Tissorvelja l-Prestazzjoni tal-Linux
- 13 Għodda ta' Monitoraġġ Linux Aktar Utli
Kif tikkontrolla l-proċessi fil-Linux
Linux għandu wkoll xi kmandi għall-kontroll ta 'proċessi bħal kill, pkill, pgrep u killall, hawn taħt huma ftit eżempji bażiċi ta' kif tużahom:
$ pgrep -u tecmint top $ kill 2308 $ pgrep -u tecmint top $ pgrep -u tecmint glances $ pkill glances $ pgrep -u tecmint glances
Biex titgħallem kif tuża dawn il-kmandi fil-fond, biex toqtol/temm proċessi attivi fil-Linux, iftaħ il-links hawn taħt:
- Gwida biex Qtil, Pkill u Qtil Kmandi biex Twaqqaf il-Proċess Linux
- Kif Sib u Joqtol Proċessi li Tħaddmu fil-Linux
Innota li tista 'tużahom biex toqtol applikazzjonijiet li ma jirrispondux fil-Linux meta s-sistema tiegħek tiffriża.
Il-mod fundamentali ta 'kontroll tal-proċessi fil-Linux huwa billi jintbagħtu sinjali lilhom. Hemm sinjali multipli li tista 'tibgħat lil proċess, biex tara s-sinjali kollha mmexxija:
$ kill -l
Biex tibgħat sinjal lil proċess, uża l-kmandi kill, pkill jew pgrep li semmejna aktar kmieni. Iżda l-programmi jistgħu jirrispondu biss għas-sinjali jekk ikunu pprogrammati biex jirrikonoxxu dawk is-sinjali.
U l-biċċa l-kbira tas-sinjali huma għall-użu intern mis-sistema, jew għall-programmaturi meta jiktbu l-kodiċi. Dawn li ġejjin huma sinjali li huma utli għal utent tas-sistema:
- SIGHUP 1 – jintbagħat lil proċess meta t-terminal ta' kontroll tiegħu jingħalaq.
- SIGINT 2 – mibgħut lil proċess mit-terminal ta' kontroll tiegħu meta utent jinterrompi l-proċess billi jagħfas
[Ctrl+C]
. - SIGQUIT 3 – jintbagħat lil proċess jekk l-utent jibgħat sinjal ta' nieqaf
[Ctrl+D]
. - SIGKILL 9 – dan is-sinjal immedjatament itemm (joqtol) proċess u l-proċess ma jwettaq ebda operazzjoni ta' tindif.
- SIGTERM 15 – dan sinjal ta' terminazzjoni tal-programm (kill se jibgħat dan b'mod awtomatiku).
- SIGTSTP 20 – mibgħut lil proċess mit-terminal ta' kontroll tiegħu biex jitlob li jieqaf (terminal stop); mibdija mill-utent li jagħfas
[Ctrl+Z]
.
Dawn li ġejjin huma eżempji tal-kmandi tal-qtil biex joqtlu l-applikazzjoni Firefox billi tuża l-PID tagħha ladarba tiffriża:
$ pidof firefox $ kill 9 2687 OR $ kill -KILL 2687 OR $ kill -SIGKILL 2687
Biex toqtol applikazzjoni billi tuża isimha, uża pkill jew killall bħal dan:
$ pkill firefox $ killall firefox
Fis-sistema Linux, il-proċessi attivi kollha għandhom prijorità u ċertu valur sabiħ. Proċessi bi prijorità ogħla normalment jiksbu aktar ħin CPU minn proċessi ta 'prijorità aktar baxxa.
Madankollu, utent tas-sistema bi privileġġi ta 'l-għeruq jista' jinfluwenza dan bil-kmandi sbieħ u renice.
Mill-output tal-kmand ta 'fuq, l-NI juri l-valur sabiħ tal-proċess:
$ top
Uża l-kmand sabiħ biex tissettja valur sabiħ għal proċess. Żomm f'moħħok li l-utenti normali jistgħu jattribwixxu valur sabiħ minn żero sa 20 lill-proċessi li huma stess.
L-utent għerq biss jista 'juża valuri sbieħ negattivi.
Biex renice l-prijorità ta 'proċess, uża l-kmand renice kif ġej:
$ renice +8 2687 $ renice +8 2103
Iċċekkja l-artikoli utli tagħna dwar kif timmaniġġja u tikkontrolla l-proċessi tal-Linux.
- Ġestjoni tal-Proċess tal-Linux: Ibbutja, Tfigħ, u Kollox Bejn
- Sib l-Ewwel 15-il Proċess skont l-Użu tal-Memorja b'‘top’ fil-Modalità Batch
- Sib l-Ogħla Proċessi li Jħaddmu bl-Ogħla Memorja u Użu tas-CPU fil-Linux
- Kif Sib Isem tal-Proċess billi tuża Numru PID fil-Linux
Dak kollu għalissa! Għandek xi mistoqsijiet jew ideat addizzjonali, aqsamhom magħna permezz tal-formola ta 'feedback hawn taħt.