Procesi
Zagon primerka programa se imenuje proces. V Linuxu se ID procesa (PID) uporablja za predstavitev procesa, ki je značilen za vsak postopek. Obstajata dve vrsti procesov,
- Ozadje
- Procesi v ospredju
Ozadje
Postopki v ozadju se začnejo v terminalu in se izvajajo sami. Če postopek zaženete v terminalu, bo njegov izhod prikazan v terminalskem oknu in z njim lahko komunicirate, če pa vam procesa ni treba komunicirati, ga lahko zaženete v ozadju. Če želite postopek zagnati v ozadju, dodajte na koncu ukaza znak »&« in začel se bo izvajati v ozadju; prihranili boste čas in lahko boste začeli drug postopek. Za navajanje procesov, ki se izvajajo v ozadju, uporabite ukaz 'Jobs.'V ozadju bodo prikazani vsi tekoči procesi.
Na primer, nadgradnja je v Linuxu dolg postopek. Traja preveč časa in če želite med nadgradnjo sistema delati še kaj, uporabite ukaz za ozadje.
[zaščiteno po e-pošti]: ~ $ sudo apt-get upgrade -y &Začel se bo izvajati v ozadju. In medtem lahko komunicirate z drugimi programi. S tipkanjem tega ukaza lahko preverite, koliko in kateri procesi se izvajajo v ozadju.
[e-pošta zaščitena]: ~ $ delovnih mest[1] + Izvajanje sudo apt-get upgrade -y &
Procesi v ospredju
Vsi procesi, ki jih izvajamo v terminalu, se privzeto izvajajo kot procesi v ospredju. Upravljamo jih lahko z ukazi v ospredju in ozadju.
V ospredje lahko postavite kateri koli postopek v ozadju, naveden v opravilih, tako da vnesete ukaz 'fg', ki mu sledi številka procesa v ozadju.
[e-pošta zaščitena]: ~ $ fg% 1sudo apt-get upgrade -y
Če želite ta postopek prenesti v ozadje, vnesite ta ukaz.
[e-pošta zaščitena]: ~ $ bg% 1Naštevanje in upravljanje procesov z ukazom ps
Postopek uvrstitve z ukazom ps je eden najstarejših načinov za ogled procesov, ki se izvajajo. Vnesite ps ukaz, da navedete, kateri procesi se izvajajo in koliko sistemskih virov uporabljajo in kdo jih izvaja.
[zaščiteno po e-pošti]: ~ $ ps uUPORABNIK PID% CPU% MEM VSZ RSS TTY STAT START TIME COMMAND
Jim 1562 0.0 0.0 164356 6476 tty2 Ssl + 13:07 0:00 lupina
Jim 1564 5.2 0.9 881840 78704 tty2 Sl + 3:07 13:13 dauth
Jim 2919 0.0 0.0 11328 4660 pts / 0 Ss 13:08 0:00 bash
Jim 15604 0.0 0.0 11836 3412 pts / 0 R + 17:19 0:00 ps u
... odreži ..
V stolpcu uporabnik je prikazano uporabniško ime v zgornji tabeli, PID pa ID procesa. PID lahko uporabite za ubijanje ali pošiljanje ubijalskega signala procesu. % CPU prikazuje odstotek procesorja CPU,% MEM pa porabo pomnilnika z naključnim dostopom. Če želite postopek ubiti, vnesite.
[e-pošta zaščitena]: ~ $ kill [id procesa (PID)]ali
[e-pošta zaščitena]: ~ $ kill -9 [ID procesa (PID)]Z ukazom ps aux si oglejte vse tekoče procese in dodajte cev, da jo vidite po vrstnem redu.
[zaščiteno po e-pošti]: ~ $ ps aux | manjČe želite preurediti stolpce, lahko to storite tako, da dodate zastavico -e za naštevanje vseh procesov in -o za označevanje stolpcev s ključnimi besedami v ukazu ps.
[zaščiteno po e-pošti]: ~ $ ps -eo pid, uporabnik, uid,% cpu,% mem, vsz, rss, commPID UPORABNIK UID% CPU% MEM VSZ RSS UKAZ
1 koren 0 0.1 0.1 167848 11684 sistematizirano
3032 jim 1000 16.5 4.7 21744776 386524 krom
... odreži ..
Možnosti za ukaz ps.
Možnost u se uporablja za naštevanje uporabniških procesov.
[zaščiteno po e-pošti]: ~ $ ps uMožnost f se uporablja za prikaz celotnega seznama.
[zaščiteno po e-pošti]: ~ $ ps fMožnost x se uporablja za prikaz informacij o postopku brez terminala.
[zaščiteno po e-pošti]: ~ $ ps xMožnost se uporablja za prikaz razširjenih informacij.
[zaščiteno po e-pošti]: ~ $ ps emožnost se uporablja za naštevanje vseh procesov s terminalom.
[zaščiteno po e-pošti]: ~ $ ps aMožnost v se uporablja za prikaz oblike navideznega pomnilnika.
[zaščiteno po e-pošti]: ~ $ ps vZastave za ukaz ps.
-Zastavica se uporablja za ogled vsakega procesa v sistemu.
[zaščiteno po e-pošti]: ~ $ ps -e-zastava u se uporablja za prikaz procesov, ki se izvajajo kot root.
[e-pošta zaščitena]: ~ $ ps -u-zastava f se uporablja za popoln seznam postopkov.
[zaščiteno po e-pošti]: ~ $ ps -f-o zastava se uporablja za navajanje procesov v želenem stolpcu.
[zaščiteno po e-pošti]: ~ $ ps -opstree
pstree je še en ukaz za seznam procesov; prikazuje rezultate v drevesni obliki.
[zaščiteno po e-pošti]: ~ $ pstree
Možnosti za ukaz pstree
-n se uporablja za razvrščanje po PID.
[zaščiteno po e-pošti]: ~ $ pstree -n-H se uporablja za poudarjanje procesov.
[e-pošta zaščitena]: ~ $ pstree -H [PID][zaščiteno po e-pošti]: ~ $ pstree -H 6457
-a se uporablja za prikaz izhodnih podatkov, vključno z argumenti ukazne vrstice.
[e-pošta zaščitena]: ~ $ pstree -a-g se uporablja za prikaz procesov po ID-ju skupine.
[e-pošta zaščitena]: ~ $ pstree -g-s se uporablja za setev drevesa ali poseben postopek.
[e-pošta zaščitena]: ~ $ pstree -s [PID][zaščiteno po e-pošti]: ~ $ pstree -s 6457
[uporabniško ime] se uporablja za prikaz procesov v lasti uporabnika.
[zaščiteno po e-pošti]: ~ $ pstree [userName][zaščiteno po e-pošti]: ~ $ pstree jim
pgrep
Z ukazom pgrep lahko najdete tekoči postopek, ki temelji na določenih kriterijih. Za iskanje lahko uporabite polno ime ali okrajšavo postopka ali uporabniško ime ali druge atribute. ukaz pgrep sledi naslednjemu vzorcu.
[e-pošta zaščitena]: ~ $ Pgrep [možnost] [vzorec][e-pošta zaščitena]: ~ $ pgrep -u jim chrome
Možnosti za ukaz pgrep
-jaz se uporablja za iskanje neobčutljivih črk
[zaščiteno po e-pošti]: ~ $ Pgrep -i firefox-d se uporablja za razmejitev izhoda
[e-pošta zaščitena]: ~ $ Pgrep -u jim -d:-u se uporablja za iskanje postopka v lasti uporabnika
[e-pošta zaščitena]: ~ $ Pgrep -u jim-a se uporablja za navajanje procesov poleg njihovih ukazov
[e-pošta zaščitena]: ~ $ Pgrep -u jim -a-c se uporablja za prikaz števila postopkov ujemanja
[e-pošta zaščitena]: ~ $ Pgrep -c -u jim-l se uporablja za naštevanje procesov in njihovega imena
[e-pošta zaščitena]: ~ $ Pgrep -u jim -lpkill
Z ukazom pkill lahko pošljete signal delujočemu procesu na podlagi določenih meril. Za iskanje lahko uporabite polno ime ali okrajšavo postopka ali uporabniško ime ali druge atribute. ukaz pgrep sledi naslednjemu vzorcu.
[zaščiteno po e-pošti]: ~ $ Pkill [Možnosti] [Vzorci][e-pošta zaščitena]: ~ $ Pkill -9 krom
Možnosti za ukaz pkill
-signal se uporablja za pošiljanje signala e.g. SIGKILL, SIGTERM itd.
[zaščitena po e-pošti]: ~ $ Pkill --signal SIGTERM vscode-HUP se uporablja za ponovno nalaganje procesa
[zaščiteno po e-pošti]: ~ $ Pkill -HUP syslogd-f se uporablja za ubijanje procesov, ki temeljijo na celotni ukazni vrstici.
[e-pošta zaščitena]: ~ $ Pkill -f “ping 7.7.7.7 "-u se uporablja za ubijanje vseh procesov v lasti uporabnika.
[e-pošta zaščitena]: ~ $ Pkill -u jim-jaz se uporablja za neobčutljivo ubijanje postopka s strani pkill.
[e-pošta zaščitena]: ~ $ Pkill -i firefox-9 se uporablja za pošiljanje signala ubijanja.
[e-pošta zaščitena]: ~ $ Pkill -9 krom-15 se uporablja za pošiljanje zaključnega signala.
[e-pošta zaščitena]: ~ $ Pkill -15 vlclsof (Seznam odprtih datotek)
Ta pripomoček ukazne vrstice se uporablja za navajanje datotek, ki jih odpre več procesov. In kot vemo, vsi sistemi UNIX / Linux vse prepoznajo kot datoteko, zato je priročno uporabiti ukaz lsof za seznam vseh odprtih datotek.
[e-pošta zaščitena]: ~ $ lsof
V zgornji tabeli ukaza lsof FD predstavlja opis datoteke, cwd predstavlja trenutni delovni imenik, txt pomeni besedilno datoteko, mem pomeni datoteke, ki so preslikane v pomnilnik, mmap pomeni naprave, ki so preslikane v pomnilnik, REG predstavlja običajno datoteko, DIR predstavlja imenik, rtd pomeni korenski imenik. Z ukazom lsof lahko uporabite tudi druge možnosti.
Možnosti za ukaz lsof.
-c se uporablja za seznam odprtih datotek po imenu procesa.
[zaščiteno po e-pošti]: ~ $ lsof -c krom-u uporabnik uporablja za seznam odprtih datotek.
[e-pošta zaščitena]: ~ $ lsof -u jim-jaz se uporablja za seznam procesov, ki se izvajajo na vratih.
[e-pošta zaščitena]: ~ $ lsof -i+D se uporablja za seznam odprtih datotek v imeniku.
[zaščiteno po e-pošti]: ~ $ lsof + D / home /-str se uporablja za seznam odprtih datotek v procesu.
[e-pošta zaščitena]: ~ $ lsof -p 1342Seznam in upravljanje postopka z zgornjim ukazom
Z zgornjim ukazom lahko v realnem času prikažete prikaz sistemskih procesov, ki se izvajajo. Prikazuje procese, odvisno od uporabe procesorja. Stolpec lahko razvrstite po svojih željah. Zgornji ukaz vsebuje tudi nekaj informacij o vašem sistemu, na primer, kako dolgo sistem deluje, ali koliko uporabnikov je priključenih na sistem in koliko procesov se izvaja, koliko CPU-ja in RAM-a je uporabljeno ter seznam proces.
Vnesite zgornji ukaz, da se prikažejo procesi, ki se izvajajo.
[e-pošta zaščitena]: ~ $ topNaloge: skupno 291, 1 tek, 290 spanja, 0 ustavljeno, 0 zombija
% Procesorjev (-ov): 2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0st
MiB Mem: 7880.Skupaj 6, 1259.9 brezplačno, 3176 uporabljenih, 3444.4 pomnilnika / predpomnilnika
Zamenjava MiB: 2048.Skupaj 0, 2048.0 brezplačno, 0.0 uporabljeno. 4091.8 izkoristi Mem
PID UPORABNIK PR NI VIRT RES SHR S% CPU% ČAS MEM + UKAZ
3241 jim 20 0 20.7g 33512 10082 S 1.7 4.2 0:54.24 krom
3327 jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 krom
2920 jim 20 0 955400 410868 14372 S 1.0 5.1. 7:51.04 krom
3423 jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 krom
3030 jim 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 krom
3937 jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 krom
1603 jim 20 0 825608 67532 40416 S 0.3 0.8 3:13.52 Xorg
1756 jim 20 0 4154828 257056 10060 S 0.3 3.2. 5:53.31 gnomov+
1898 jim 20 0 289096 29284 5668 S 0.3 0.4 1:06.28 fusuma
3027 jim 20 0 587580 14304 75960 S 0.3 1.8. 9:43.59 krom
3388 jim 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 krom
3409 jim 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 krom
3441 jim 20 0 16.5g 156396 89700 S 0.3 1.9 0:25.70 krom
.. .odreži .. .
Z ukazom top lahko naredite tudi nekaj dejanj, da spremenite tekoče procese; tukaj je spodnji seznam.
- u s pritiskom na „u“ lahko prikažete postopek, ki ga izvaja določen uporabnik.
- M s pritiskom na “M” lahko uredite glede na uporabo RAM-a in ne na CPU.
- P s pritiskom na “P” lahko razvrstite glede na uporabo procesorja.
- 1 s pritiskom na “1” preklopite med uporabo procesorjev, če jih je več.
- R s pritiskom na “R” lahko izhodno razvrstite nazaj.
- h s pritiskom na "h" lahko poiščete pomoč in pritisnete katero koli tipko za vrnitev.
Upoštevajte, kateri postopek porabi več pomnilnika ali CPU. Tiste procese, ki porabijo več pomnilnika, je mogoče ubiti, procese, ki porabijo več procesorja, pa spremeniti, da bodo imeli manjši pomen za procesor.
Ubijte postopek na vrhu: Pritisnite k in napišite ID procesa, ki ga želite ubiti. Nato vnesite 15 ali 9, da ubijete normalno ali takoj; postopek lahko ubijete tudi z ukazom kill ali killall.
Renice postopek na vrhu: Pritisnite r in napišite PID postopka, ki ga želite spremeniti. Zahteval vas bo, da vnesete PID postopka in nato vrednost določanja vrednosti, ki jo želite dati temu postopku, je med -19 in 20 (-19 pomeni največji pomen in 20 pomeni najnižji pomen).
Naštevanje in upravljanje procesov s sistemskim monitorjem
Linux ima sistemski nadzornik gnome za bolj dinamično prikazovanje tekočih procesov. Če želite zagnati sistemski monitor, pritisnite tipko Windows in vnesite sistemski monitor, kliknite njegovo ikono in v stolpcih si lahko ogledate procese. Če z desno miškino tipko kliknete postopek, lahko postopek ustavite ali ustavite.
Postopki, ki se izvajajo, so prikazani z uporabniškimi računi v abecednem vrstnem redu. Procese lahko razvrstite po poljubnih naslovih polj, kot so CPU, pomnilnik itd., samo kliknite nanje in razvrščene bodo; na primer kliknite CPU, da vidite, kateri proces porabi največ procesorske moči. Če želite upravljati procese, z desno miškino tipko kliknite nanje in izberite možnost, ki jo želite narediti s postopkom. Za upravljanje postopka izberite naslednje možnosti.
- Lastnosti- prikaže druge nastavitve, povezane s postopkom.
- Zemljevidi pomnilnika- prikaži zemljevide sistemskega pomnilnika, da pokaže, katera knjižnica in druge komponente se uporabljajo v pomnilniku za postopek.
- Odpri datoteko- prikazuje, katere datoteke se odprejo v postopku.
- Spremeni prednost- prikažite stransko vrstico, iz katere lahko postopek obnovite z možnostmi od zelo visoke do zelo nizke in po meri.
- Nehaj- zaustavi postopek, dokler se ne odločite za nadaljevanje.
- Nadaljujte- znova zažene zaustavljeni postopek.
- Ubij- Sila proces takoj ubije.
Ubijanje postopka z kill in killall
kill in ukaz killall se uporablja za ubijanje / zaključek tekočega procesa. Te ukaze je mogoče uporabiti tudi za pošiljanje veljavnega signala delujočemu procesu, kot je recimo, da se postopek nadaljuje, konča ali prebere konfiguracijske datoteke itd. Signale lahko zapisujemo na oba načina s številkami ali z imenom. Sledi nekaj najpogosteje uporabljenih signalov.
Številka signala Opis
SIGHUP 1 Zazna signal prekinitve na krmilnem terminalu.SIGINT 2 Razlaga s tipkovnice.
SIGQUIT 3 Zaprite s tipkovnice.
SIGILL 4 Nezakonita navodila.
SIGTRAP 5 Uporablja se za sledenje trasu.
SIGABRT 6 se uporablja za prekinitev signala iz prekinitve (3).
SIGKILL 9 Uporablja se za pošiljanje signala o ubijanju.
SIGTERM 15 Uporablja se za pošiljanje zaključnega signala.
SIGCONT 19,18,25 Uporablja se za nadaljevanje postopka, če se ustavi.
SIGSTOP 17,19,23 Uporablja se za zaustavitev procesov.
V različnih operacijskih sistemih Unix / Linux se uporabljajo različni vrednosti SIGCONT in SIGSTOP. Za podrobne informacije o signalih tipa man 7 signalni terminal.
Uporaba ukaza kill za pošiljanje signala za obdelavo s PID.
Upoštevajte postopek, ki mu želite poslati signal za umor. ID procesa (PID) lahko najdete s psom ali zgornjim ukazom.
PID UPORABNIK PR NI VIRT RES SHR S% CPU% ČAS MEM + UKAZ7780 jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 zgoraj
Vrhunski postopek traja 33.3% CPU. Če želite ta postopek ubiti, da prihranite porabo procesorja, je tu nekaj načinov, kako ta postopek končati z ukazom kill.
[zaščiteno po e-pošti]: ~ $ kill 7780[zaščiteno po e-pošti]: ~ $ kill -15 7780 ali $ kill -SIGTERM 7780
[e-pošta zaščitena]: ~ $ kill -9 7780 ali $ kill -SIGKILL 7780
Uporaba ukaza killall za pošiljanje signalov procesu po imenu.
Z ukazom killall vam ni treba iskati ID-ja procesa; lahko procesu pošljete signal za ubijanje namesto ID-ja procesa. Prav tako lahko ubije več procesov, kot želite, če niste previdni, npr.g., »Killall chrome« bo ubil vse procese kroma, vključno s tistimi, ki jih ne želite ubiti. Včasih je koristno ubiti istoimenske procese.
Tako kot ukaz kill lahko tudi v ukaz killall vtipkate signale po imenu ali številki. Ubijte kateri koli tekoči postopek z ukazom killall; vtipkati morate samo njegovo ime in signal, ki ga želite poslati. e.g., pošljete signal ubijanja firefoxu z ukazom killall, napišite spodnji ukaz.
[zaščiteno po e-pošti]: ~ $ killall -9 firefoxali
[e-pošta zaščitena]: ~ $ killall SIGKILL kromSpreminjanje prioritete postopka z nice in renice
Vsak postopek v vašem sistemu Linux ima odlično vrednost in znaša med -19 in 20. Odločil se je, kateri postopek bo dobil več dostopa do CPU v sistemu. Nižja kot je vrednost Nice, več dostopa ima proces do procesorja. Tako kot -16 lepih vrednosti ima več dostopa do CPU kot 18 lepih vrednosti. Samo uporabnik s korenskimi pravicami lahko dodeli negativno vrednost nice. Običajni uporabnik lahko dodeli vrednost "lepo" le med 0 in 19. Običajni uporabnik lahko dodeli le višje lepe vrednosti in na lastne procese. Korenski uporabnik lahko poljubnemu procesu nastavi katero koli lepo vrednost.
Če želite z dodeljevanjem lepe vrednosti omogočiti postopek, ki bo bolj dostopen za uporabo procesorja, vnesite naslednji ukaz.
[e-pošta zaščitena]: ~ $ lepo +3 kromIn postopek obnovite
[e-pošta zaščitena]: ~ $ renice -n -6 3612Zaključek
Tu je vodnik za upravljanje vašega sistema Linux s ps, top, lsof, pstree, pkilll, kill, killall, nice, renice itd. Nekateri procesi porabijo večino CPU in RAM-a; če veste, kako z njimi upravljati, povečate hitrost in zmogljivost vašega sistema ter dobite boljše okolje za učinkovitejše izvajanje vseh procesov, ki jih želite.