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:

  1. 20 Għodda tal-Linja tal-Kmand biex Tissorvelja l-Prestazzjoni tal-Linux
  2. 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:

  1. Gwida biex Qtil, Pkill u Qtil Kmandi biex Twaqqaf il-Proċess Linux
  2. 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.

  1. Ġestjoni tal-Proċess tal-Linux: Ibbutja, Tfigħ, u Kollox Bejn
  2. Sib l-Ewwel 15-il Proċess skont l-Użu tal-Memorja b'‘top’ fil-Modalità Batch
  3. Sib l-Ogħla Proċessi li Jħaddmu bl-Ogħla Memorja u Użu tas-CPU fil-Linux
  4. 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.