For å drepe en Linux -prosess trenger du IDen eller navnet. Hvis alt du vet er porten den bruker, kan du fortsatt drepe den? Ja, på flere forskjellige måter.
Drepe prosesser
Noen ganger a Linux -prosess kan bli ikke svarende. Det kan slutte å fungere riktig, eller det kan fortsette å fungere, men ignorerer forespørsler om at det skal slå seg av, eller begynne å goble minne, prosessor , eller nettverksbåndbredde.
Uansett hva motivene dine, er det måter å drepe en prosess fra Linux -kommandolinjen. Den klassiske metoden er å bruke
Drep kommandoen med prosess -ID
av prosessen du vil avslutte. De
drepe
Kommandoen har noen nære slektninger. De
pkill
Kommando vil drepe en prosess ved navn, og
Drep alle
vil drepe alle prosesser det kan finne den delingen en del av et navn.
Hvis alt du vet om en prosess er at det bruker en port på datamaskinen din, er det fremdeles måter å identifisere og drepe den på. I nettverksbetingelser kan "port" bety en fysisk forbindelse som du setter inn en kabel med en plugg på enden, for eksempel en Cat5 eller 6 nettverksledelse , eller det kan bety en programvareport.
En programvareport er den siste delen av en nettverkstilkobling. De IP adresse av en enhet identifiserer datamaskinen eller annet nettverksapparat. Applikasjonene inne i datamaskinen bruker forskjellige porter. Disse gir et annet nivå av granularitet. Nettverkstrafikken har kommet til riktig datamaskin ved hjelp av IP -adressen, og ved å bruke portadresse kan den leveres til riktig applikasjon.
Det er som postpost som ankommer et hotell, for deretter å bli sortert og levert til passende rom. IP -adressen er som gateadressen til hotellet, og romtallene er som portnumrene.
Hvis du ser nettverksaktivitet i en port og ikke gjenkjenner prosessen som genererer den, eller atferden er problematisk eller mistenkelig, kan det være lurt å drepe prosessen. Selv om alt du vet er portnummeret, kan du spore prosessen og drepe den.
Opprette forbindelser med SOCAT
Slik at vi har noen forbindelser å drepe, vil vi bruke
Socat
For å lage nettverkstilkoblinger ved hjelp av forskjellige protokoller. Du må installere
Socat
. For å installere den på Ubuntu, bruk denne kommandoen:
Syntaks for
Socat
er grei hvis det er litt langvarig. Vi må oppgi kilde- og destinasjonsadressene. For hver av disse må vi oppgi protokoll, IP -adresse og portnummer. Vi kan erstatte stdin eller stdout som kilde eller destinasjon.
Denne kommandoen oppretter en forbindelse mellom en TCP -lyttekontakt på port 7889, på Loopback IP -adressen på 127.0.0.1, og stdout. Ampersand "
& amp;
”
kjører kommandoen i bakgrunnen
, slik at vi beholder tilgangen til kommandolinjen.
Vi lager to tilkoblinger til slik at vi har et lite utvalg av stikkontakter ved hjelp av forskjellige protokoller. Vi lager en UDP -tilkobling og en SCTP -tilkobling . Den eneste delen av kommandoen som endres er protokollen.
Bruker drap
Vi kan selvfølgelig bruke
drepe
Å avslutte prosessen, like lenge vi vet hva ID for prosessen er. For å finne PID, kan vi bruke
de
lsof
kommando
.
For å liste opp detaljene i prosessen på port 7889 som bruker TCP -protokollen, bruker vi
-Jeg
(Internett -adresse) Alternativ, som dette.
PID for denne prosessen er 3141, og vi kan gå foran og bruke det med
drepe
:
Vi kan spare oss for litt krefter hvis vi bruker rør. Hvis vi rører utgangen fra
lsof
inn i
awk
og
fortelle
awk
For å søke etter linjer som inneholder porten vi er interessert i - 7889 - og trykke det andre feltet fra den linjen, vil vi isolere PID.
Vi kan deretter røre utgangen fra
awk
inn i det
drepe
kommando ved bruk av
xargs
. De
xargs
Kommandoen tar sin rørinngang og overfører den til en annen kommando
som kommandolinjeparametere
. Vi bruker
xargs
med
drepe
kommando.
Vi får ingen visuelle tilbakemeldinger. På den typiske Linux -måten er ingen nyheter gode nyheter. Hvis du vil sjekke at prosessen er avsluttet, kan du bruke
lsof
en gang til.
Fordi
lsof
rapporterer ikke noe, vi vet at det ikke er noen slik forbindelse.
Vi kan fjerne en prosess ved å bruke UDP -protokollen ganske enkelt ved å erstatte “TCP” med “UDP” i vår tidligere kommando.
Vi kan bruke
de
ss
kommando
å gjøre det. Vi bruker
-S
(SCTP) Alternativ for å søke etter SCTP -stikkontakter,
-en
(alle) alternativ for å søke etter alle typer stikkontakter (lytte, akseptere, tilkoblet osv.), Og
-p
(prosesser) Alternativ for å liste opp detaljene i prosessen ved hjelp av kontakten.
Vi kan analysere den utdata ved hjelp av
grep
og
awk
. Vi kan også analysere det ved hjelp av
grep
Og noen Perl regexes, men på denne måten er mye lettere å forstå. Hvis du skulle bruke dette mer enn en eller to ganger, ville du sannsynligvis lage en
alias eller skallfunksjon
ut av det.
Vi vil røre utdataene fra
ss
inn i
grep
og søk etter portnummeret vårt, 7889. Vi rører utdataene fra
grep
inn i
awk
. I
awk
, vi bruker
-F
(separatorstreng) Alternativ for å angi komma “
,
”Som feltavgrenseren. Vi søker etter en streng
inneholder
“PID =”, og skriv ut det andre komma-avgrensede feltet fra den strengen.
Vi kan
rør
det inn i
awk
Igjen, sett feltavgrenser til likestiltet “
=
”Og skriv ut det andre feltet fra
at
streng, som vil være teksten bak likesteget.
Vi har nå isolert prosess -IDen. Vi kan bruke
xargs
å passere PID til
drepe
som en kommandolinjeparameter.
Det dreper prosessen som brukte SCTP -protokolluttaket på port 7889.
Fikseringskommandoen
De
fiksering
Kommando forenkler ting mye. Ulempen er at den bare fungerer med
TCP og UDP
stikkontakter. På plussiden er det de to vanligste typene stikkontakter du trenger å takle. De
fiksering
Kommandoen var allerede installert på datamaskinene Ubuntu, Fedora og Manjaro vi sjekket.
Alt du trenger å gjøre er å bruke
-K
(Kill) alternativet, og gi port og protokoll. Du kan enten bruke
-n
(namespace) -alternativet og oppgi protokollen og port, eller bruk "fremover -snarveisformatet" og sett portnummeret først.
Portnummeret, protokollen og PID for den avsluttet prosessen skrives ut i terminalvinduet.
Prøv Fuser først
Det vil sannsynligvis bli installert på datamaskinen du jobber med, og protokollen vil sannsynligvis være TCP eller UDP, så det er en stor sjanse for at den enkleste måten vil fungere for deg.
- › OnePlus 11 er her, men med en grov start
- › Hvordan blokkere eller fjerne blokkering av noen på Tiktok
- › AirPods Pro har ny konkurranse: OnePlus Buds Pro 2
- › Microsoft Edge får AI -chat og et nytt utseende på Windows
- › De beste øreproppene for iPhone -fans treffer nettopp den laveste prisen
- › Microsoft forvandler Bing til en AI -søkemotor