Upravljanje procesov

Upravljanje procesov v Ubuntu Linux

Upravljanje procesov v Ubuntu Linux
Upravljanje procesov v Linuxu je pomembna tema za učenje in razumevanje, saj gre za večopravilni operacijski sistem in hkrati izvaja številne procese. Linux ponuja številna orodja za upravljanje procesov, kot so naštevanje tekočih procesov, ubijanje procesov, spremljanje uporabe sistema itd. V Linuxu je vsak proces predstavljen s svojim ID-jem procesa (PID). Procesu obstajajo nekateri drugi atributi, kot sta ID uporabnika in ID skupine, če uporabnik ali skupina zažene postopek. Včasih morate postopek ubiti ali komunicirati z njim, zato morate vedeti, kako te procese upravljati, da bo sistem nemoteno deloval. V Linuxu lahko procese upravljamo z ukazi, kot je ps, pstree, pgrep, pkill, lsof, top, nice, renice in kill, itd.

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

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% 1
sudo apt-get upgrade -y

Če želite ta postopek prenesti v ozadje, vnesite ta ukaz.

[e-pošta zaščitena]: ~ $ bg% 1

Naš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 u
UPORABNIK 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, comm
PID 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 u

Možnost f se uporablja za prikaz celotnega seznama.

[zaščiteno po e-pošti]: ~ $ ps f

Možnost x se uporablja za prikaz informacij o postopku brez terminala.

[zaščiteno po e-pošti]: ~ $ ps x

Možnost se uporablja za prikaz razširjenih informacij.

[zaščiteno po e-pošti]: ~ $ ps e

možnost se uporablja za naštevanje vseh procesov s terminalom.

[zaščiteno po e-pošti]: ~ $ ps a

Možnost v se uporablja za prikaz oblike navideznega pomnilnika.

[zaščiteno po e-pošti]: ~ $ ps v

Zastave 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 -o
pstree

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 -l
pkill

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 vlc
lsof (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 1342

Seznam 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]: ~ $ top
Naloge: 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.

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.

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 + UKAZ
7780 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 firefox

ali

[e-pošta zaščitena]: ~ $ killall SIGKILL krom

Spreminjanje 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 krom

In postopek obnovite

[e-pošta zaščitena]: ~ $ renice -n -6 3612

Zaključ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.

Top 5 kartic za zajemanje iger
Vsi smo v YouTubu videli in oboževali pretakanje iger. PewDiePie, Jakesepticye in Markiplier so le nekateri izmed najboljših igralcev, ki so zaslužili...
Kako razviti igro na Linuxu
Pred desetletjem le malo uporabnikov Linuxa napoveduje, da bo njihov najljubši operacijski sistem nekoč priljubljena igralna platforma za komercialne ...
Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...