Jak zabít proces Linuxu pomocí čísla portu


Už jste se někdy setkali se situací, kdy potřebujete zastavit proces, který běží na konkrétním portu na vašem počítači se systémem Linux?

Můžete se obávat, že se aplikace, kterou používáte, chová špatně nebo že zatěžuje vaše síťové zdroje nebo výkon místního procesoru. Taková aplikace může být dokonce bezpečnostní hrozbou, kterou chcete odstranit.

Ať je důvod jakýkoli, z terminálu můžete použít příkazy fuser,lsofanetstat(spolu s příkazem kill), který vám pomůže najít a ukončit jakýkoli proces Linuxu pomocí čísla portu. Tyto příkazy budou fungovat na většině operačních systémů Linux, včetně Ubuntu.

Jak zabít proces Linuxu pomocí příkazu fuser

Jedním z nejjednodušších způsobů, jak ukončit proces pomocí čísla portu, je použít příkaz fuser. Toto Příkaz terminálu Linux může vypsat nebo ukončit procesy přistupující k souborům nebo soketům. Pokud aplikace běží se síťovou aktivitou (a tedy používá otevřený port), pravděpodobně dělá jednu z těchto dvou věcí.

Než budete pokračovat, musíte se ujistit, že vám vyhovuje používání terminálu příkazového řádku na vašem počítači se systémem Linux.

Pro seznam procesů, které používají číslo portu pomocí fixační jednotky, můžete použít následující syntaxi:

port protokolu fixační jednotky -n

V tomto příkladu může být protokoltcpnebo udp, zatímco portje číslo portu, který chcete zkontrolovat. Chcete-li například zjistit, které procesy používají port TCP 80, můžete spustit:

fuser -n tcp 80

Tímto se vytisknou ID procesů (PID) procesů používajících tento port.

Chcete-li tyto procesy ukončit, můžete do zapékací jednotkypřidat možnost -k. To odešle každému procesu signál SIGTERM, který je požádá o řádné ukončení. Například:

fuser -k -n tcp 80

Toto ukončí všechny procesy používající port TCP 80.

Pokud některé procesy na SIGTERM nereagují, můžete místo -kpoužít -KILL. To odešle signál zabíjení (SIGKILL), který může pomoci přinutit aktuálně běžící procesy, které jste identifikovali, k okamžitému ukončení. To však může způsobit ztrátu nebo poškození dat, proto jej používejte opatrně. Například:.

fuser -KILL -n tcp 80

Toto násilně ukončí všechny procesy používající port TCP 80. Pokud narazíte na nějaké problémy, spusťte tyto příkazy jako super uživatel (pomocí příkazu sudo) nebo pomocí rootuživatele.

Jak zabít linuxový proces pomocí příkazu lsof

Dalším způsobem, jak ukončit proces pomocí čísla portu na počítači se systémem Linux, je použít příkaz lsof. Tento příkaz může zobrazit seznam otevřených souborů a soketů ve vašem systému.

Pro seznam procesů, které používají konkrétní číslo portu, můžete použít následující syntaxi:

lsof -i protokol:port

Stejně jako dříve může být protokoltcpnebo udp, zatímco portje číslo portu, který chcete šek. Chcete-li například zjistit, které procesy používají port TCP 53 (obvykle používaný pro požadavky DNS), můžete spustit tento příkaz:

lsof -i tcp:53

Tím se vytisknou některé informace o každém procesu používajícím daný port, včetně jeho PID.

Chcete-li tyto procesy ukončit, můžete použít možnost -ts lsof. Tím se vytisknou pouze PID procesů bez dalších informací. Tento výstup pak můžete převést na příkaz kills libovolnou možností signálu. Například:

zabít $(lsof -t -i tcp:53)

To odešle signály SIGTERM (výchozí nastavení) všem procesům používajícím port TCP 53.

Pokud některé procesy nereagují na signály SIGTERM jako dříve, můžete po killmísto ničeho použít -9. To odešle signály SIGKILL jako dříve, což je donutí okamžitě ukončit, ale může také způsobit ztrátu nebo poškození dat. Například:

kill -9 $(lsof -t -i tcp:53)

Tím se vynuceně odešlou signály SIGKILL (výchozí nastavení) všem procesům používajícím port TCP 53.

Jak zabít proces Linuxu pomocí příkazu netstat

Příkaz netstatmůžete také použít ke sledování běžících procesů v počítači se systémem Linux pomocí aktivních a otevřených síťových portů. netstat vám umožňuje zobrazit síťová připojení a statistiky vašeho systému, což vám umožní určit problematické procesy.

Chcete-li uvést procesy pomocí čísla portu spolu s jejich PID, musíte přidat dvě možnosti: -p, která zobrazuje PID, a -l, která zobrazuje pouze poslechové zásuvky..

Musíte také zadat protokol (tcp, udp atd.) a volitelně filtrovat podle stavu (LISTEN atd.). Chcete-li například zjistit, které procesy TCP naslouchají na libovolných portech, můžete spustit:

netstat -p tcp -l

Tím se vytisknou informace o každém soketu TCP, který naslouchá na libovolných portech, včetně jeho PID.

Chcete-li filtrovat podle konkrétních portů, musíte přidat další možnost: -n, která zobrazuje číselné adresy namísto jmen. Musíte také zadat přesný formát adresy: [protocol][@hostname|hostaddr][:service|port].

Chcete-li například zjistit, které procesy TCP naslouchají na portu 80, můžete spustit:

netstat -p tcp -l -n 80

Tímto se vytisknou informace o každém soketu TCP naslouchajícím na portu 8080, včetně jeho PID.

Chcete-li tyto procesy zabít, můžete použít příkaz kills libovolnou možností signálu a PID, které jste získali z netstat. Například:

zabijte 1234 5678

To odešle signály SIGTERM (výchozí) procesům s PID 1234a 5678.

Pokud některé procesy nereagují na signály SIGTERM jako dříve, můžete po killmísto ničeho použít -9. To odešle signály SIGKILL jako dříve, což je donutí okamžitě ukončit, ale může to způsobit ztrátu nebo poškození dat jako dříve. Například:

zabít -9 1234 5678

To odešle signály SIGKILL například procesům s PID 1234a 5678. Nahraďte 1234správným PID pro váš běžící proces.

Ovládejte své linuxové aplikace

Díky výše uvedeným krokům můžete rychle ukončit běžící proces Linuxu pomocí čísla portu pomocí příkazového řádku systému Linux. Nezapomeňte být opatrní při zabíjení procesů, zejména u signálů SIGKILL, protože mohou způsobit nežádoucí vedlejší účinky – přeci nechcete způsobit nestabilitu systému.

Chcete se blíže podívat na výkon vašeho systému v systému Linux? Jako další můžete chtít zkontrolujte využití paměti v systému Linux. Pokud se obáváte potenciálního bezpečnostního rizika, možná budete chtít změnit heslo na Linuxu také.

Potřebujete přejít na novou distribuci Linuxu? Pokud jste začátečník, zvažte Linux Mint bezpečná a stabilní alternativa..

.

Související příspěvky:


2.04.2023