Chcete -li zabít proces Linux, potřebujete jeho ID nebo jeho název. Pokud vše, co víte, je port, který používá, můžete jej stále zabít? Ano, několika různými způsoby.
Zabíjení procesů
Občas a Linuxový proces může stát nereagující. Může přestat fungovat správně, nebo může i nadále fungovat, ale ignorovat žádosti o to, aby vypnul nebo spustil boukánnou paměť, procesor nebo šířka pásma sítě.
Ať už jsou vaše motivy jakékoli, existují způsoby, jak zabít proces z příkazového řádku Linux. Klasická metoda je používat
Zabijte příkaz pomocí ID procesu
procesu, který chcete ukončit. The
zabít
Příkaz má několik blízkých příbuzných. The
pkill
příkaz zabije proces podle jména a
zabít všechny
Zabije všechny procesy, které může najít, že část sdílení jména.
Pokud vše, co víte o procesu, je, že na vašem počítači používá port, stále existují způsoby, jak jej identifikovat a zabít. Z hlediska sítě může „port“ znamenat fyzické připojení, do kterého vložíte kabel se zástrčkou na konci, například a Vedoucí sítě Cat5 nebo 6 , nebo to může znamenat softwarový port.
Softwarový port je poslední částí síťového připojení. The IP adresa zařízení identifikuje počítač nebo jiné síťové zařízení. Aplikace uvnitř počítače používají různé porty. Ty poskytují další úroveň granularity. Síťový provoz dorazil ke správnému počítači pomocí IP adresy a pomocí jeho adresy může být doručen ke správné aplikaci.
Je to jako poštovní pošta, která dorazí do hotelu, poté je roztříděna a doručena do příslušných pokojů. IP adresa je jako adresa ulice hotelu a čísla pokojů jsou jako čísla přístavů.
Pokud vidíte síťovou aktivitu na portu a neuznáváte proces, který jej generuje, nebo jeho chování je problematické nebo podezřelé, možná budete chtít tento proces zabít. I když vše, co víte, je číslo portu, můžete proces vystopovat a zabít.
Vytváření spojení se SOCAT
Abychom zabili měli nějaké spojení, použijeme
socat
Vytvoření síťových připojení pomocí různých protokolů. Budete muset nainstalovat
socat
. Chcete -li jej nainstalovat na Ubuntu, použijte tento příkaz:
Syntaxe pro
socat
je jednoduché, pokud je trochu dlouhé. Musíme poskytnout zdrojové a cílové adresy. Pro každý z nich musíme poskytnout protokol, IP adresu a číslo portu. STDIN nebo STDOUT můžeme nahradit jako zdroj nebo cíl.
Tento příkaz vytvoří spojení mezi poslechovým soketem TCP na portu 7889, na IP adrese Loopback 127.0.0.1 a stdout. Ampersand “
& amp;
“
Spustí příkaz na pozadí
, abychom si udrželi přístup k příkazovému řádku.
Vytvoříme další dvě připojení, abychom měli malý výběr zásuvek pomocí různých protokolů. Vytvoříme Připojení UDP a Připojení SCTP . Jedinou částí příkazu, který se mění, je protokol.
Pomocí zabijáka
Samozřejmě můžeme použít
zabít
K ukončení procesu, pokud víme, co je ID procesu. K nalezení PID můžeme použít
The
LSOF
příkaz
.
Pro uvedení podrobností procesu na portu 7889, které používají protokol TCP, používáme
-I
(Internetová adresa) Možnost, jako je tato.
PID tohoto procesu je 3141 a my můžeme pokračovat a použít to s
zabít
:
Můžeme si ušetřit určité úsilí, pokud použijeme trubky. Pokud potrubíme výstup
LSOF
do
Awk
a
sdělit
Awk
Pro vyhledávání řádků, které obsahují port, o který se zajímám - 7889 - a vytiskněte druhé pole z této řádky, izolujeme PID.
Poté můžeme výstup potrušit
Awk
do
zabít
příkaz použití
Xargs
. The
Xargs
Příkaz vezme svůj vstup na potrubí a předá jej jinému příkazu
Jako parametry příkazového řádku
. Použijeme
Xargs
s
zabít
příkaz.
Nemáme žádnou vizuální zpětnou vazbu. Typickým linuxem není žádná zpráva dobrá zpráva. Pokud chcete zkontrolovat, zda byl proces ukončen, můžete použít
LSOF
ještě jednou.
Protože
LSOF
Nic nehlásí, víme, že takové spojení neexistuje.
Proces můžeme odstranit pomocí protokolu UDP jednoduše nahrazením „TCP“ „UDP“ v našem dřívějším příkazu.
Můžeme použít
The
ss
příkaz
udělat to. Používáme
-S
(SCTP) Možnost hledat zásuvky SCTP,
-A
(All) Možnost hledat všechny typy zásuvek (poslech, přijímání, připojení atd.) A
-p
(Processes) Možnost pro seznam podrobností procesu pomocí soketu.
Můžeme tento výstup analyzovat pomocí pomocí
Grep
a
Awk
. Mohli bychom to také analyzovat pomocí
Grep
A některé Perl Regexes, ale tento způsob je mnohem snazší pochopit. Pokud byste to chtěli používat více než jednou nebo dvakrát, pravděpodobně byste udělali
funkce alias nebo skořápky
z toho.
Vytváříme výstup z
ss
do
Grep
a vyhledat naše číslo portu, 7889. Vytváříme výstup z
Grep
do
Awk
. v
Awk
, používáme
-F
(Struktura separátoru) Nastavení čárky “
,
“Jako oddělovač pole." Hledáme řetězec
obsahující
"Pid =" a vytiskněte druhé pole delimitované čárkou z tohoto řetězce.
Můžeme
trubka
to do
Awk
Opět nastavte vymezení pole na značku rovného “
=
“A vytiskněte druhé pole z
že
řetězec, který bude textem za značkou rovných.
Nyní jsme izolovali ID procesu. Můžeme použít
Xargs
předat PID na
zabít
jako parametr příkazového řádku.
To zabíjí proces, který používal zásuvku protokolu SCTP na portu 7889.
Příkaz fixačníka
The
Fuser
Příkaz hodně zjednodušuje věci. Nevýhodou je, že to funguje pouze
TCP a UDP
zásuvky. Na druhou stranu jsou to dva nejběžnější typy zásuvek, se kterými se budete muset vypořádat. The
Fuser
Příkaz byl již nainstalován na počítačích Ubuntu, Fedora a Manjaro, které jsme zkontrolovali.
Vše, co musíte udělat, je použít
-K
(Kill) Možnost a poskytnout port a protokol. Můžete buď použít
-N
(Namespace) Možnost a poskytnout protokol a port nebo použít „Forward Slash Formats Format“ a dát první číslo portu.
Číslo portu, protokol a PID ukončeného procesu jsou vytištěny v okně terminálu.
Nejprve zkuste oheč
Pravděpodobně bude nainstalován na počítači, na kterém pracujete, a protokol bude pravděpodobně TCP nebo UDP, takže existuje velká šance, že pro vás bude nejjednodušší způsob.
- › OnePlus 11 je tady, ale s hrubým startem
- › Jak zablokovat nebo odblokovat někoho na Tiktoku
- › AirPods Pro má novou soutěž: The OnePlus Buds Pro 2
- › Microsoft Edge získává chatu AI a nový pohled na Windows
- › Nejlepší sluchátko pro fanoušky iPhone právě zasáhlo jejich nejnižší cenu
- › Microsoft transformuje Bing do vyhledávače AI