Het doden van een proces is het soms de enige manier om zich te ontdoen van het. Ondanks de moeilijke naam, “doden” een proces betekent gewoon “dwingen om te stoppen.” Hier is hoe het te doen via Linux of macOS commando-regel.
Wat is een Proces?
Lopende programma ‘ s zoals uw webbrowser, achtergrond processen die samenhangen met uw desktop-omgeving, en een Linux-systeem diensten zijn alle processen.
U kunt de forfaitaire processen in twee groepen:
- Voorgrond processen zijn degenen die zijn gestart of is gestart door een gebruiker. Ze kunnen in een terminal venster, of ze kunnen een grafische toepassing.
- Achtergrond processen zijn van alle processen die automatisch worden gestart en hebben geen interactie met de gebruikers. Ze verwachten niet dat de input van de gebruikers, noch doen zij presenteren de resultaten of output naar hen. Achtergrond processen zijn dingen zoals diensten en daemons.
Indien de voorgrond processen worden de voorzijde van theater de medewerkers en de acteurs, de achtergrond processen zijn de backstage “achter de schermen” team.
Wanneer processen niet goed werkt of defect is, kunnen ze hog te veel CPU-tijd verbruiken RAM, of voer een strakke computational loop en reageert. Grafische toepassingen kunnen weigeren te reageren op muisklikken. Terminal applicaties die misschien nooit meer terug naar de opdrachtprompt.
De Humane Antwoord
“Moord” een proces betekent gewoon “waardoor het proces te stoppen.” Dit kan nodig zijn als het proces is de weigering om te reageren.
Linux biedt de doden, pkill, en killall commando ‘ s, zodat u precies dat doen. Deze commando ‘ s kunnen gebruikt worden met elk type van proces -, grafische of op de opdrachtregel, op de voorgrond of achtergrond.
De kill-Opdracht
Om gebruik te doden, moet u weten de proces-ID (PID) van het proces dat u wilt beëindigen. Het ps commando kan worden gebruikt om de PID van een proces.
Om ps te zoeken door alle van de processen gebruik maken van de -e (alle processen) optie. De leidingen van de output minder is aan te raden, er gaat wel een beetje van. Type ps, een ruimte, met-e, een ruimte, | (van een teken), nog een spatie en typ vervolgens minder. Druk op Enter om het commando uit.
ps -e | minder
Dit geeft u een proces vermelding dat lijkt op de onderstaande afbeelding. U kunt zoeken naar voren in minder met de / – toets en u kunt zoeken achteruit met behulp van de ? toets.
Om thuis in op het proces dat u geïnteresseerd bent in, pijp is de uitvoer van ps door middel van grep en geef de naam of een deel van de naam—van het proces.
ps -e | grep sluiter
Nadat u het PID van het proces dat u wilt beëindigen, geeft u dat aan de kill-commando op als een parameter. Voor het beëindigen van de sluiter proces geïdentificeerd door het vorige commando te gebruiken, gebruik je dit commando:
doden 2099
De kill-opdracht is een silent assassin—het niet geven van feedback als het succesvol was.
De pkill Opdracht
De pkill commando stelt u in staat om te doden van een proces of processen—met de naam. U hoeft niet om het proces te identificeren door de PID. Gebruik pkill u een zoekterm die pkill gebruikt om te controleren tegen de lijst van lopende processen. Matching processen worden beëindigd. Dus moet je positief je hebt zoekterm correct gespeld.
Als een vangnet, kunt u gebruik maken van de pgrep opdracht voordat u de pkill opdracht. De pgrep opdracht accepteert ook een zoekterm. Zij zullen een lijst van de PID van elk proces dat overeenkomt met de zoekterm. Deze is veilig, omdat pgrep zal geen enkele kill signaal naar de processen, en als je het verkeerd typt de zoekterm die u niet zal doden een ander proces per ongeluk. U kunt ervoor zorgen dat u de zoekterm goed doordacht voordat u doorgeven aan pkill. Zowel pkill en pgrep de behandeling van de zoekterm in de dezelfde manier. De behandeling is zo vergelijkbaar dat ze dezelfde man pagina.
Stel, er is een proces met “subq” in de naam. We zullen gebruik maken van de ps -u dave | grep commando uit om een kijkje achter het gordijn. U kunt zien dat “subq” zal overeenkomen met dat proces en dat proces alleen. Dat was gewoon zo zie je de volledige naam van het proces.
ps -u dave | grep subq
Laten we aannemen dat onze gebruiker nog niet gedaan; alles wat ze weten is de naam van het proces bevat de substring “subq.” Ze gebruiken pgrep om te controleren dat er slechts één overeenkomen met de zoekterm. Ze gebruiken deze zoekopdracht met pkill.
pgrep subq
pkill subq
U kunt gebruik maken van pkill om te doden van meerdere processen tegelijk. Hier is de gebruiker loopt pgrep om te controleren hoeveel processen Chrome heeft gelanceerd. Ze gebruiken pkill om ze allemaal te doden. Ze controleren dan in met pgrep dat ze allemaal zijn verwijderd.
pgrep chrome
pkill chrome
pgrep chrome
Als er meerdere processen met dezelfde naam actief zijn, maar u niet wilt om te doden ze allemaal, u kunt gebruik maken van pgrep met de -f (command line) optie om te identificeren welk proces is. Een eenvoudig voorbeeld zou twee ping-processen. U wilt om te doden een van hen, maar niet de andere. U kunt gebruik maken van hun opdracht lijnen onderscheid tussen hen te maken. Let op het gebruik van aanhalingstekens om wrap de command line parameter.
pgrep -f “ping 192.168.4.22”
pkill -f “ping 192.168.4.22”
Het killall Commando
Waarschuwing: In het Solaris en OpenIndiana besturingssystemen het killall commando zal doden alle de processen die bij jou horen. Als root of als u hebben uitgegeven sudo killall je computer wordt opnieuw opgestart! Tijdens het onderzoek voor dit artikel, dit gedrag werd bevestigd met de nieuwste versie van OpenIndiana Hipster 2018.10.
Het killall commando werkt op een soortgelijke manier als de pkill opdracht, maar met een specifieke verschil. In plaats van het passeren van een zoekterm om de opdracht die u moet de exacte proces naam terug.
U kan niet voorzien in een gedeeltelijke match om een proces naam; u moet het hele proces naam, zoals weergegeven:
killall shutt
killall sluiter
De -y (jonger dan) optie stelt u in staat om te doden van processen die werden uitgevoerd voor minder dan een opgegeven periode. De periode wordt gegeven in cijfers gevolgd door één van de volgende eenheden:
- s (seconden)
- m (minuten)
- h (uur)
- d (dagen)
- w (weken)
- M (maanden, opmerking, hoofdletter “M”)
- y (jaar)
Het doden van een proces genaamd ana dat is net gelanceerd en laat een oudere exemplaren van ana uitgevoerd, kunt u de volgende parameters met killall, als je zou reageerde binnen twee minuten:
killall -y 2m ana
De -o (ouder dan) optie stelt u in staat om te doden van processen die werden uitgevoerd voor langer dan een opgegeven periode. Deze opdracht zal doden alle ssh-verbindingen die zijn uitgevoerd voor langer dan een dag:
killall -o 1d sshd
Wees niet Te Trigger Happy
Deze commando ‘ s zal u toelaten om te identificeren en het beëindigen van processen met nauwkeurigheid en veiligheid correct.
Altijd voorzichtig zijn. Eerste, zorg ervoor dat het proces dat je over om te doden is echt degene die je wilt. Ten tweede, dubbel check— wees voorzichtig en zorg dat de gerichte proces dat u wilt beëindigen. Ga met de beëindiging van het proces als u tevreden bent.