För att döda en Linux -process behöver du dess ID eller dess namn. Om allt du vet är porten den använder, kan du fortfarande döda den? Ja, på flera olika sätt.
Dödande processer
Ibland en Linux -process kan bli svarande. Det kan sluta fungera korrekt, eller det kan fortsätta att fungera men ignorera förfrågningar om att den ska stängas av eller börja gabba minnet, Cpu eller nätverksbandbredd.
Oavsett dina motiv finns det sätt att döda en process från Linux -kommandoraden. Den klassiska metoden är att använda
döda kommandot med process -ID
av processen du vill avsluta. De
döda
Kommandot har några nära släktingar. De
pkill
Kommandot kommer att döda en process med namn och
döda alla
Kommer att döda alla processer som det kan hitta den delen av ett namn.
Om allt du vet om en process är att det använder en port på din dator finns det fortfarande sätt att identifiera och döda den. I nätverksmässiga termer kan "port" betyda en fysisk anslutning där du sätter in en kabel med en kontakt i slutet, till exempel en CAT5 eller 6 nätverksledning , eller det kan betyda en mjukvaruport.
En mjukvaraport är den sista delen av en nätverksanslutning. De IP-adress av en enhet identifierar datorn eller annan nätverksapparat. Applikationerna i datorn använder olika portar. Dessa ger en annan nivå av granularitet. Nätverkstrafiken har anlänt till rätt dator med IP -adressen, och genom att använda portadressen kan den levereras till rätt applikation.
Det är som postpost som anländer till ett hotell, sedan sorteras och levereras till lämpliga rum. IP -adressen är som hotellets gatuadress, och rumsnumren är som portnumren.
Om du ser nätverksaktivitet på en port och inte känner igen processen som genererar den, eller dess beteende är problematiskt eller misstänksamt, kanske du vill döda processen. Även om allt du vet är portnumret kan du spåra processen och döda det.
Skapa anslutningar med Socat
Så att vi har några anslutningar att döda, vi kommer att använda
supat
För att skapa nätverksanslutningar med olika protokoll. Du måste installera
supat
. För att installera det på Ubuntu, använd det här kommandot:
Syntaxen för
supat
är okomplicerad om lite långvarig. Vi måste ange käll- och destinationsadresser. För var och en av dessa måste vi ange protokoll, IP -adress och portnummer. Vi kan ersätta stdin eller stdout som en källa eller destination.
Detta kommando skapar en anslutning mellan ett TCP -lyssningsuttag på port 7889, på Loopback IP -adressen 127.0.0.1 och STDOUT. Ampersand “
& amp;
”
kör kommandot i bakgrunden
, så att vi behåller åtkomst till kommandoraden.
Vi skapar ytterligare två anslutningar så att vi har ett litet urval av uttag med olika protokoll. Vi skapar en UDP -anslutning och en SCTP -anslutning . Den enda delen av kommandot som ändrar är protokollet.
Med hjälp av död
Naturligtvis kan vi använda
döda
Att avsluta processen, så länge vi vet vad ID för processen är. För att hitta PID kan vi använda
de
lsof
kommando
.
För att lista detaljerna i processen på port 7889 som använder TCP -protokollet använder vi
-j
(Internetadress) Alternativ, så här.
PID för denna process är 3141, och vi kan gå vidare och använda det med
döda
:
Vi kan rädda oss lite ansträngningar om vi använder rör. Om vi rör utgången från
lsof
in i
klämma
och
säga
klämma
För att söka efter rader som innehåller porten vi är intresserade av - 7889 - och skriver ut det andra fältet från den raden, kommer vi att isolera PID.
Vi kan sedan röra utgången från
klämma
in i
döda
kommando med hjälp av
xarg
. De
xarg
kommandot tar sin piped ingång och skickar den till ett annat kommando
som kommandoradsparametrar
. Vi kommer att använda
xarg
med
döda
kommando.
Vi får ingen visuell feedback. På det typiska Linux -sättet är inga nyheter goda nyheter. Om du vill kontrollera att processen har avslutats kan du använda
lsof
en gång till.
Därför att
lsof
Rapporterar inte någonting, vi vet att det inte finns någon sådan anslutning.
Vi kan ta bort en process med UDP -protokollet helt enkelt genom att ersätta "TCP" med "UDP" i vårt tidigare kommando.
Vi kan använda
de
ss
kommando
att göra det. Vi använder
-S
(SCTP) alternativ för att söka efter SCTP -uttag,
-a
(alla) alternativ för att söka efter alla typer av uttag (lyssna, acceptera, anslutas, etc.) och
-p
(Processer) Alternativ för att lista detaljerna i processen med uttaget.
Vi kan analysera den utgången med
grep
och
klämma
. Vi kan också analysera det
grep
Och vissa Perl Regexes, men på detta sätt är mycket lättare att förstå. Om du skulle använda detta mer än en eller två gånger skulle du förmodligen göra en
alias eller skalfunktion
ur det.
Vi kommer att leda utgången från
ss
in i
grep
och sök efter vårt portnummer, 7889. Vi rör ut utgången från
grep
in i
klämma
. I
klämma
, vi använder
-F
(Separator String) Alternativ för att ställa in ett komma “
,
”Som fältavgränsaren. Vi söker efter en sträng
som innehåller
“PID =”, och skriv ut det andra komma-avgränsade fältet från den strängen.
Vi kan
rör
det i
klämma
Återigen, ställ in fältavgränsaren till Equals -tecknet “
=
”Och skriva ut det andra fältet från
den där
String, som kommer att vara texten bakom lika tecknet.
Vi har nu isolerat process -ID. Vi kan använda
xarg
att överföra PID till
döda
som en kommandoradsparameter.
Det dödar processen som använde SCTP -protokolluttaget på port 7889.
Fusionskommandot
De
säkringsverkare
Kommandot förenklar saker mycket. Nackdelen är att det bara fungerar med
TCP och UDP
uttag. På plussidan är det de två vanligaste typerna av uttag du behöver ta itu med. De
säkringsverkare
Kommandot var redan installerat på datorerna Ubuntu, Fedora och Manjaro som vi kontrollerade.
Allt du behöver göra är att använda
-k
(döda) alternativet och tillhandahålla porten och protokollet. Du kan antingen använda
-n
(NAMESPACE) Alternativ och tillhandahåller protokoll och port, eller använd "Forward Slash Short -formatet" och lägg först portnumret.
Portnumret, protokollet och PID för den avslutade processen skrivs ut i terminalfönstret.
Prova FUSER först
Det kommer förmodligen att installeras på datorn du arbetar med, och protokollet kommer sannolikt att vara TCP eller UDP, så det finns en stor chans att det enklaste sättet kommer att fungera för dig.
- › OnePlus 11 är här, men med en grov start
- › Hur man blockerar eller avblockerar någon på tiktok
- › AirPods Pro har ny tävling: OnePlus Buds Pro 2
- › Microsoft Edge får AI -chatt och ett nytt utseende på Windows
- › De bästa öronsnäckorna för iPhone -fans träffade bara deras lägsta pris
- › Microsoft förvandlar Bing till en AI -sökmotor