geïnteresseerd in meer informatie over Linux-beheer? Bekijk deze Linux trainingen.
- Introduction to Linux (LFS101x) – Free
- Essentials of Linux System Administration (LFS201)
leer hoe u dwalende processen kunt doden in deze tutorial vanuit onze archieven.
Beeld dit in: U hebt een toepassing gestart (of het nu vanuit uw favoriete bureaubladmenu of vanaf de commandoregel is) en u begint die gelanceerde app te gebruiken, alleen om het op u te laten vergrendelen, te stoppen met presteren of onverwacht te stoppen. Je probeert de app opnieuw uit te voeren, maar het blijkt dat het origineel nooit echt helemaal is afgesloten.
Wat doet u? Je stopt het proces. Maar hoe? Geloof het of niet, uw beste weddenschap ligt meestal binnen de opdrachtregel. Gelukkig heeft Linux alle tools die nodig zijn om jou, de gebruiker, in staat te stellen een Dwalend proces te doden. Echter, voordat u onmiddellijk start dat commando om het proces te doden, moet u eerst weten wat het proces is. Hoe zorg je voor deze gelaagde taak? Het is eigenlijk heel eenvoudig … als je eenmaal weet wat je tot je beschikking hebt.
laat me je voorstellen aan deze tools.
de stappen die ik ga schetsen zullen werken op bijna elke Linux-distributie, of het nu een desktop of een server is. Ik zal strikt omgaan met de commandoregel, dus open je terminal en bereid je voor om te typen.
het proces lokaliseren
de eerste stap in het stoppen van het niet-reagerende proces is het lokaliseren. Er zijn twee commando ‘ s die ik gebruik om een proces te lokaliseren: top en ps. Top is een tool die elke beheerder moet leren kennen. Met top, krijg je een volledige lijst van het lopende proces. Vanaf de commandoregel, geef top om een lijst van uw lopende processen te zien (figuur 1).
in deze lijst vindt u belangrijke informatie. Bijvoorbeeld, Chrome reageert niet meer. Volgens onze Top display, we kunnen onderscheiden zijn er vier gevallen van chrome draait met Process IDs (PID) 3827, 3919, 10764, en 11679. Deze informatie zal belangrijk zijn om te hebben met een bepaalde methode van het doden van het proces.
hoewel top ongelooflijk handig is, is het niet altijd de meest efficiënte manier om de informatie te krijgen die je nodig hebt. Laten we zeggen dat je weet dat het Chrome-proces is wat je moet doden, en je wilt niet te hebben om een blik door de real-time informatie aangeboden door top. Daarvoor kunt u gebruik maken van het ps-commando en de uitvoer filteren via grep. Het ps-commando rapporteert een momentopname van een lopend proces en grep drukt lijnen af die overeenkomen met een patroon. De reden waarom we ps filteren via grep is eenvoudig: Als je het ps commando zelf uitvoert, krijg je een snapshot lijst van alle huidige processen. We willen alleen de vermelding in verband met Chrome. Dus dit commando ziet er als volgt uit:
ps aux | grep chrome
De aux-opties zijn als volgt:
-
a = toon processen voor alle gebruikers
-
u = Toon de gebruiker/eigenaar van het proces
-
x = toon ook processen die niet zijn gekoppeld aan een terminal
> de optie X is belangrijk als u op zoek bent naar informatie over een grafische toepassing.
wanneer u het bovenstaande commando uitvoert, krijgt u meer informatie dan u nodig hebt (Figuur 2) Voor het afbreken van een proces, maar het is soms efficiënter dan het gebruik van top.
het proces afbreken
nu komen we aan de taak om het proces te stoppen. We hebben twee stukken informatie die ons zullen helpen het dwalende proces te doden.:
-
Procesnaam
-
proces-ID
die u gebruikt, bepaalt het commando dat wordt gebruikt voor beëindiging. Er worden twee commando ’s gebruikt om een proces te doden:
-
kill – Kill een proces met ID
-
killall – Kill een proces met naam
Er zijn ook verschillende signalen die naar beide kill-commando’ s kunnen worden verzonden. Welk signaal je verstuurt wordt bepaald door welke resultaten je wilt van het kill commando. Je kunt bijvoorbeeld het HUP (hang up) signaal naar het kill commando sturen, dat het proces effectief herstart. Dit is altijd een verstandige keuze als je het proces onmiddellijk moet herstarten (zoals in het geval van een daemon). Je kunt een lijst krijgen van alle signalen die naar het kill commando gestuurd kunnen worden door kill-l uit te geven. je zult een behoorlijk groot aantal signalen vinden (Figuur 3).
de meest voorkomende kill-signalen zijn:
Signal Name |
Single Value |
Effect |
SIGHUP |
Hangup |
|
SIGINT |
Interrupt from keyboard |
|
SIGKILL |
Kill signal |
|
SIGTERM |
Termination signal |
|
SIGSTOP |
17, 19, 23 |
Stop the process |
Het leuke hiervan is dat je de Signaalwaarde kunt gebruiken in plaats van de Signaalnaam. Je hoeft dus niet alle namen van de verschillende signalen te onthouden. dus, laten we nu het kill commando gebruiken om onze instantie van chrome te doden. De structuur voor dit commando zou zijn:
kill SIGNAL PID
waarbij signaal het signaal is dat moet worden verzonden en PID het proces-ID is dat moet worden gedood. We weten al, van ons ps commando dat de ID ‘ s die we willen doden 3827, 3919, 10764 en 11679 zijn. Dus om het kill signaal te sturen, gaven we de commando ‘ s:
kill -9 3827kill -9 3919kill -9 10764kill -9 11679
zodra we de bovenstaande commando ‘ s hebben uitgegeven, zullen alle Chrome processen succesvol zijn uitgeschakeld.
laten we de makkelijke route nemen! Als we al weten dat het proces dat we willen doden Chrome heet, kunnen we gebruik maken van het killall commando en hetzelfde signaal het proces als zo sturen:
killall -9 chrome
het enige voorbehoud bij het bovenstaande commando is dat het niet alle draaiende Chrome processen kan vangen. Als, na het uitvoeren van het bovenstaande commando, je het ps aux|grep chrome commando geeft en de resterende processen ziet draaien, is je beste kans om terug te gaan naar het kill commando en signaal 9 te sturen om het proces te beëindigen door PID.
het beëindigen van processen is eenvoudig
zoals u kunt zien, is het doden van dwalende processen lang niet zo uitdagend als u had gedacht. Als ik eindig met een koppig proces, begin ik met het killall commando omdat het de meest efficiënte route is naar beëindiging. Echter, als je eindigt met een echt pittig proces, de kill commando is de manier om te gaan.
leer meer over Linux via de gratis” Introduction to Linux ” cursus van de Linux Foundation en edX.