Android

Sådan dræbes en proces i linux

Steam Controller

Steam Controller

Indholdsfortegnelse:

Anonim

Har du nogensinde været i en situation, hvor du lancerede en applikation, og pludselig, mens du bruger applikationen, bliver den ikke reagerende og uventet går ned? Du prøver at starte ansøgningen igen, men der sker ikke noget, fordi den originale ansøgningsproces aldrig virkelig lukker helt ned.

Det er sket med os alle på et tidspunkt, er det ikke? Løsningen er at afslutte eller dræbe ansøgningsprocessen. Men hvordan?

Heldigvis er der flere hjælpeprogrammer i Linux, der giver dig mulighed for at dræbe forkerte processer., vil vi vise dig, hvordan du bruger kill , killall og pkill kommandoer til at afslutte en proces i Linux.

Den største forskel mellem disse værktøjer er, at kill afslutter processer baseret på Process ID-nummer (PID), mens pkill og pkill kommandoerne afslutter kørende processer baseret på deres navne og andre attributter.

Regelmæssige brugere kan dræbe deres egne processer, men ikke dem, der hører til andre brugere, mens rodbrugeren kan dræbe alle processer.

System Dræbssignaler

kill , killall og pkill sender et givet signal til specificerede processer eller procesgrupper. Når der ikke er angivet noget signal, sender hvert værktøj 15 ( TERM ).

De mest almindeligt anvendte signaler er:

  • 1 (-HUP): for at genindlæse en proces. 9 (-KILL): at dræbe en proces. 15 (-TERM): til yndefuldt at stoppe en proces.

Signaler kan specificeres på tre forskellige måder:

  • ved hjælp af nummer (f.eks. -1) med “SIG” præfikset (f.eks. -SIGHUP) uden “SIG” præfikset (f.eks. -HUP).

Brug indstillingen -l til at liste alle tilgængelige signaler:

kill -l # or killall -l

Trinene beskrevet nedenfor fungerer på alle Linux-distributioner.

Afslutning af processer ved hjælp af kill kommandoen

For at afslutte en proces med kill kommandoen skal du først finde processen PID. Du kan gøre dette ved hjælp af forskellige kommandoer som top , ps , pidof og pgrep .

Lad os sige, at Firefox-browseren er ikke reagerer, og du er nødt til at dræbe Firefox-processen. Brug pidof kommandoen til at finde proces-ID:

pidof firefox

Kommandoen udskriver alle Firefox-processer:

2551 2514 1963 1856 1771

Når du først har kendt Firefox, behandler PID'er for at afslutte dem alle, send TERM signalet:

kill -9 2551 2514 1963 1856 1771

Afslutning af processer ved hjælp af killall kommandoen

killall kommandoen afslutter alle programmer, der matcher et specifikt navn.

Ved hjælp af det samme scenarie som før kan du dræbe Firefox-processen ved at skrive:

killall -9 firefox

killall accepterer flere muligheder, såsom at sende signaler til processer, der ejes af en given bruger, matche processernes navne mod regulære udtryk og oprettelsestid. Du kan få en liste over alle indstillinger ved at skrive killall (uden nogen argumenter) på din terminal.

For eksempel at afslutte alle processer, der kører som en "sara" bruger, kører du følgende kommando:

sudo killall -u sara

Afslutning af processer ved hjælp af pkill kommandoen

pkill afslutter processer, der matcher det mønster, der er givet på kommandolinjen:

pkill -9 firefox

Navnet på processen behøver ikke være et nøjagtigt match.

Med pkill kan du også sende et signal til processer, der ejes af en given bruger. For at dræbe kun firefox-processer, der ejes af brugeren "sara", skriver du:

pkill -9 -u sara firefox

Konklusion

At afslutte ikke-reagerende programmer ved hjælp af kommandoerne kill , killall og pkill er en let opgave. Du behøver kun at kende procesnavnet eller PID.

dræb terminal