Processhantering

Hantera processer i Ubuntu Linux

Hantera processer i Ubuntu Linux
Hantera processer i Linux är ett viktigt ämne att lära sig och förstå, eftersom det är ett multitasking-operativsystem och har många processer som pågår samtidigt. Linux tillhandahåller många verktyg för att hantera processer, som att lista löpande processer, döda processer, övervaka systemanvändning osv. I Linux representeras varje process av dess Process ID (PID). Det finns några andra attribut till processen som användar-id och grupp-id om en användare eller grupp kör processen. Ibland måste du döda eller interagera med en process, så du bör veta hur du hanterar dessa processer för att ditt system ska fungera smidigt. I Linux kan processer hanteras med kommandon som ps, pstree, pgrep, pkill, lsof, top, nice, renice and kill, etc.

Processer

Att köra en instans av ett program kallas en process. I Linux används process-id (PID) för att representera en process som är distinkt för varje process. Det finns två typer av processer,

Bakgrundsprocesser

Bakgrundsprocesser startar i terminalen och körs av sig själva. Om du kör en process i terminalen visas dess utdata i ett terminalfönster och du kan interagera med den, men om du inte behöver interagera med processen kan du köra den i bakgrunden. Om du vill köra en process i bakgrunden, lägg bara till ett "&" -tecken i slutet av kommandot, så börjar det köras i bakgrunden; det sparar tid och du kan starta en ny process. För att lista processer som körs i bakgrunden använder du kommandot jobb.'Det kommer att visa alla körprocesser i bakgrunden.

Till exempel är uppgradering en lång process i Linux. Det tar för mycket tid, och om du vill göra andra saker medan systemet uppgraderas, använd bakgrundskommandot.

[e-postskyddad]: ~ $ sudo apt-get upgrade -y &

Det kommer att börja springa i bakgrunden. Och du kan interagera med andra program under tiden. Du kan kontrollera hur många och vilka processer som körs i bakgrunden genom att skriva detta kommando.

[e-postskyddad]: ~ $ jobb
[1] + Kör sudo apt-get upgrade -y &

Förgrundsprocesser

Alla processer som vi kör i terminalen körs som standard i förgrundsprocesser. Vi kan hantera dem med förgrunds- och bakgrundskommandon.

Du kan ta alla bakgrundsprocesser som anges i jobb i förgrunden genom att skriva kommandot 'fg' följt av bakgrundsprocessnumret.

[e-postskyddad]: ~ $ fg% 1
sudo apt-get upgrade -y

Och om du vill ta den här processen till bakgrunden skriver du det här kommandot.

[e-postskyddad]: ~ $ bg% 1

Lista och hantera processer med ps-kommando

Listningsprocessen med ps-kommandot är ett av de äldsta sätten att se terminalens körprocesser. Skriv ps-kommando för att lista vilka processer som körs och hur mycket systemresurs de använder och vem som kör dem.

[e-postskyddad]: ~ $ ps u
ANVÄNDARE PID% CPU% MEM VSZ RSS TTY STAT START TID KOMMANDO
Jim 1562 0.0 0.0 164356 6476 tty2 Ssl + 13:07 0:00 skal
Jim 1564 5.2 0.9 881840 78704 tty2 Sl + 3:07 13:13 dauth
Jim 2919 0.0 0.0 11328 4660 poäng / 0 Ss 13:08 0:00 bash
Jim 15604 0.0 0.0 11836 3412 poäng / 0 R + 17:19 0:00 ps u
... klipp ..

Användarkolumnen visar användarnamnet i ovanstående tabell och PID visar process-id. Du kan använda PID för att döda eller skicka dödssignalen till en process. % CPU visar processorprocessor och% MEM visar slumpmässig minnesanvändning. För att döda en process, skriv.

[e-postskyddad]: ~ $ kill [process-id (PID)]

eller

[e-postskyddad]: ~ $ kill -9 [process-id (PID)]

Använd kommandot ps aux för att se alla pågående processer och lägg till ett rör för att se det i ordning.

[e-postskyddad]: ~ $ ps aux | mindre

Om du vill ordna om kolumnerna kan du göra det genom att lägga till en flagga -e för att lista alla processer och -o för att indikera för kolumnerna med nyckelord i ps-kommandot.

[e-postskyddad]: ~ $ ps -eo pid, användare, uid,% cpu,% mem, vsz, rss, comm
PID-ANVÄNDARE UID% CPU% MEM VSZ RSS-KOMMANDO
1 rot 0 0.1 0.1 167848 11684 system
3032 jim 1000 16.5 4.7 21744776 386524 krom
... klipp ..

Alternativ för ps-kommando.

u-alternativet används för att lista användarnas processer.

[e-postskyddad]: ~ $ ps u

f-alternativet används för att visa hela listan.

[e-postskyddad]: ~ $ ps f

x-alternativet används för att visa information om processen utan terminal.

[e-postskyddad]: ~ $ ps x

alternativet e används för att visa utökad information.

[e-postskyddad]: ~ $ ps e

ett alternativ används för att lista alla processer med terminalen.

[e-postskyddad]: ~ $ ps a

alternativet v används för att visa virtuellt minnesformat.

[e-postskyddad]: ~ $ ps v

Flaggor för ps-kommando.

-e-flaggan används för att se alla processer i systemet.

[e-postskyddad]: ~ $ ps -e

-u-flaggan används för att se processer som körs som root.

[e-postskyddad]: ~ $ ps -u

-f-flaggan används för en fullständig lista över processer.

[e-postskyddad: ~ $ ps -f

-o-flagga används för att lista processerna i önskad kolumn.

[e-postskyddad]: ~ $ ps -o
pstree

pstree är ett annat kommando för att lista processerna; det visar utdata i ett trädformat.

[e-postskyddad]: ~ $ pstree

Alternativ för pstree-kommando

-n används för att sortera processer med PID.

[e-postskyddad]: ~ $ pstree -n

-H används för att belysa processer.

[e-postskyddad]: ~ $ pstree -H [PID]
[e-postskyddad]: ~ $ pstree -H 6457

-a används för att visa utdata, inklusive kommandoradsargument.

[e-postskyddad]: ~ $ pstree -a

-g används för att visa processer efter grupp-id.

[e-postskyddad]: ~ $ pstree -g

-s används för sådd av trädet eller en specifik process.

[e-postskyddad]: ~ $ pstree -s [PID]
[e-postskyddad]: ~ $ pstree -s 6457

[Användarnamn] används för att visa processer som ägs av en användare.

[e-postskyddad]: ~ $ pstree [användarnamn]
[e-postskyddad]: ~ $ pstree jim
pgrep

Med kommandot pgrep kan du hitta en pågående process baserat på vissa kriterier. Du kan använda processens fullständiga namn eller förkortning för att hitta eller med användarnamn eller andra attribut. pgrep-kommandot följer följande mönster.

[e-postskyddad]: ~ $ Pgrep [alternativ] [mönster]
[e-postskyddad]: ~ $ pgrep -u jim chrome
Alternativ för pgrep-kommando

-i används för att söka skiftlägeskänsliga

[e-postskyddad]: ~ $ Pgrep -i Firefox

-d används för att avgränsa utdata

[e-postskyddad]: ~ $ Pgrep -u jim -d:

-u används för att hitta process som ägs av en användare

[e-postskyddad]: ~ $ Pgrep -u jim

-a används för att lista processer tillsammans med deras kommandon

[e-postskyddad]: ~ $ Pgrep -u jim -a

-c används för att visa antalet matchningsprocesser

[e-postskyddad]: ~ $ Pgrep -c -u jim

-l används för att lista processer och deras namn

[e-postskyddad]: ~ $ Pgrep -u jim -l
pkill

Med kommandot pkill kan du skicka en signal till en pågående process baserat på vissa kriterier. Du kan använda processens fullständiga namn eller förkortning för att hitta eller med användarnamn eller andra attribut. pgrep-kommandot följer följande mönster.

[e-postskyddad]: ~ $ Pkill [Alternativ] [Mönster]
[e-postskyddad]: ~ $ Pkill -9 krom
Alternativ för pkill-kommando

-signal används för att skicka en signal e.g. SIGKILL, SIGTERM, etc.

[e-postskyddad]: ~ $ Pkill --signal SIGTERM vscode

-HUP används för att ladda om en process

[e-postskyddad]: ~ $ Pkill -HUP syslogd

-f används för att döda processer baserat på hela kommandoraden.

[e-postskyddad]: ~ $ Pkill -f “ping 7.7.7.7 ”

-u används för att döda alla processer som ägs av en användare.

[e-postskyddad]: ~ $ Pkill -u jim

-i används för skiftlägeskänslig avlivning av processen med pkill.

[e-postskyddad]: ~ $ Pkill -i Firefox

-9 används för att skicka en dödssignal.

[e-postskyddad]: ~ $ Pkill -9 krom

-15 används för att skicka en avslutningssignal.

[e-postskyddad: ~ $ Pkill -15 vlc
lsof (Lista över öppna filer)

Detta kommandoradsverktyg används för att lista filer som öppnas av flera processer. Och som vi känner igen känner alla UNIX / Linux-system allt som en fil, så det är bekvämt att använda kommandot lsof för att lista alla öppnade filer.

[e-postskyddad]: ~ $ lsof

I ovanstående tabell med kommandot lsof representerar FD filbeskrivning, cwd representerar den aktuella arbetskatalogen, txt betyder textfil, mem betyder minneskartade filer, mmap betyder minneskartade enheter, REG representerar en vanlig fil, DIR representerar katalog, rtd betyder rotkatalog. Det finns andra alternativ du kan använda med kommandot lsof.

Alternativ för lsof-kommando.

-c används för listning av öppna filer efter deras processnamn.

[e-postskyddad]: ~ $ lsof -c krom

-u används för listning av öppna filer av en användare.

[e-postskyddad]: ~ $ lsof -u jim

-i används för listning av processer som körs på en port.

[e-postskyddad]: ~ $ lsof -i

+D används för listning av öppna filer under en katalog.

[e-postskyddad]: ~ $ lsof + D / hem /

-sid används för listning av öppna filer genom en process.

[e-postskyddad]: ~ $ lsof -p 1342

Listning och hantering av process med toppkommando

Med det översta kommandot kan du visa en realtidsvy av systemprocesser som körs. Det visar processerna beroende på CPU-användning. Du kan sortera kolumnen efter dig. Det översta kommandot ger också lite information om ditt system, till exempel hur länge systemet har körts eller hur många användare som är anslutna till systemet och hur många processer som körs, hur mycket CPU och RAM som används och en lista över varje bearbeta.

Skriv kommandot överst för att lista ned de processer som körs.

[e-postskyddad]: ~ $ topp
Uppgifter: 291 totalt, 1 löpande, 290 sovande, 0 stoppade, 0 zombie
% Cpu (s): 2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0st
MiB Mem: 7880.6 totalt, 1259.9 gratis, 3176 används, 3444.4 buff / cache
MiB-byte: 2048.Totalt 02048.0 gratis, 0.0 används. 4091.8 tillgängliga Mem
PID-ANVÄNDARE PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
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 gnome-s+
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
.. .klipp… .

Du kan också göra några åtgärder med det översta kommandot för att göra ändringar i pågående processer; här är listan nedan.

Observera vilken process som förbrukar mer minne eller CPU. De processer som konsumerar mer minne kan dödas, och de processer som konsumerar mer CPU kan tas bort för att ge dem mindre betydelse för processorn.

Döda en process högst upp: Tryck k och skriv det process-ID du vill döda. Skriv sedan 15 eller 9 för att döda normalt eller omedelbart; Du kan också döda en process med ett kill- eller killall-kommando.

Förnya en process högst upp: Tryck r och skriv PID: n för den process du vill bli avsedd för. Det kommer att be dig att skriva PID för processen och sedan värdet av nicing du vill ge denna process mellan -19 till 20 (-19 betyder högsta vikt och 20 betyder lägsta vikt).

Listning och hantering av processer med systemmonitor

Linux har en systemmonitor-gnome som visar de körande processerna mer dynamiskt. För att starta systemmonitorn, tryck på Windows-tangenten och skriv systemmonitorn, klicka på dess ikon så kan du se processer i kolumner. Genom att högerklicka på dem kan du döda, stoppa eller avstå från processen.

De pågående processerna visas med användarkonton i alfabetisk ordning. Du kan sortera processerna efter valfria fältrubriker som CPU, minne osv., klicka bara på dem så sorteras de; klicka till exempel på CPU för att se vilken process som förbrukar mest CPU-effekt. För att hantera processer högerklickar du på dem och väljer det alternativ du vill göra med processen. Välj följande alternativ för att hantera processen.

Döda en process med kill and killall

kill, och killall-kommandot används för att döda / avsluta en pågående process. Dessa kommandon kan också användas för att skicka en giltig signal till en pågående process, som att berätta för en process att fortsätta, avsluta eller läsa om konfigurationsfiler etc. Signaler kan skrivas på båda sätten med siffror eller med namn. Följande är några vanliga signaler.

Signalnummer Beskrivning

SIGHUP 1 Detekterar avstängningssignal på styrterminalen.
SIGINT 2 Tolkad från tangentbordet.
SIGQUIT 3 Avsluta från tangentbordet.
SIGILL 4 Olagliga instruktioner.
SIGTRAP 5 används för att spåra en fälla.
SIGABRT 6 används för att avbryta signal från avbrytande (3).
SIGKILL 9 Används för att skicka en dödssignal.
SIGTERM 15 Används för att skicka en avslutningssignal.
SIGCONT 19,18,25 används för att fortsätta en process om den stoppas.
SIGSTOP 17,19,23 Används för att stoppa processer.

Olika värden för SIGCONT och SIGSTOP används i olika Unix / Linux-operativsystem. För detaljerad information om signal typ man 7 signalterminal.

Använda kill-kommandot för att skicka signal för att behandlas med PID.

Observera processen som du vill skicka en dödssignal till. Du hittar process-id (PID) med ps eller toppkommando.

PID-ANVÄNDARE PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
7780 jim 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 topp

Toppprocessen förbrukar 33.3% av processorn. Om du vill döda den här processen för att spara CPU-användning, här är några sätt att avsluta den här processen med dödkommandot.

[e-postskyddad]: ~ $ kill 7780
[e-postskyddad]: ~ $ kill -15 7780 eller $ kill -SIGTERM 7780
[e-postskyddad]: ~ $ kill -9 7780 eller $ kill -SIGKILL 7780

Använd killall Command för att skicka signaler till en process efter namn.

Med killall-kommandot behöver du inte söka efter process-id; du kan skicka en dödssignal till en process med namn snarare än process-id. Det kan också döda fler processer än du vill om du inte är försiktig, t.ex.g., “Killall chrome” dödar alla kromprocesser, inklusive de du inte vill döda. Ibland är det användbart att döda processer med samma namn.

Liksom kill-kommandot kan du skriva signalerna med namn eller nummer i killall-kommandot. Döda alla pågående processer med killall-kommandot; du behöver bara skriva namnet och signalen du vill skicka. e.g., skicka en dödsignalprocess Firefox med hjälp av killall-kommandot, skriv kommandot nedan.

[e-postskyddad]: ~ $ killall -9 Firefox

eller

[e-postskyddad]: ~ $ killall SIGKILL krom

Ändra processprioritet med fin och renice

Varje process på ditt Linux-system har ett utmärkt värde och det är mellan -19 och 20. Det bestämde vilken process som skulle få mer CPU-åtkomst i systemet. Ju lägre värdet på det trevliga, desto mer åtkomst har en process till CPU-processen. Liksom -16 trevliga värden har mer tillgång till CPU än 18 trevliga värden. Endast en användare med rootprivilegier kan tilldela ett negativt värde av nice. En normal användare kan bara tilldela värdet “trevligt” mellan 0 och 19. En vanlig användare kan bara tilldela högre trevliga värden och på sina egna processer. En rotanvändare kan ställa in vilket bra värde som helst för alla processer.

Om du vill ge en process mer tillgänglig för CPU-användningen genom att tilldela det fina värdet, skriv följande kommando.

[e-postskyddad]: ~ $ trevlig +3 krom

Och förlora processen

[e-postskyddad]: ~ $ renice -n -6 3612

Slutsats

Här är guiden för att hantera ditt Linux-system med ps, top, lsof, pstree, pkilll, kill, killall, nice, renice, etc. Vissa processer förbrukar det mesta av CPU-användningen och RAM; att veta hur man hanterar dem ökar din systemhastighet och prestanda och ger dig en bättre miljö att köra alla processer du vill ha mer effektivt.

Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...
Installera det senaste OpenRA-strategispelet på Ubuntu Linux
OpenRA är en Libre / Free Real Time Strategy-spelmotor som återskapar de tidiga Westwood-spelen som det klassiska Command & Conquer: Red Alert. Distri...
Installera senaste Dolphin Emulator för Gamecube & Wii på Linux
Dolphin Emulator låter dig spela dina valda Gamecube & Wii-spel på Linux Personal Computers (PC). Eftersom Dolphin Emulator är en fritt tillgänglig o...