Hogyan lehet megölni egy Linux-folyamatot portszám használatával


Találkozott már olyan helyzettel, amikor le kell állítania egy folyamatot, amely a Linux-gép egy adott portján fut?

Aggódhat amiatt, hogy egy Ön által futtatott alkalmazás rosszul működik, vagy leköti a hálózati erőforrásokat vagy a helyi CPU teljesítményét. Egy ilyen alkalmazás akár olyan biztonsági fenyegetést is jelenthet, amelyet el kíván hárítani.

Bármi is az oka, használhatja a fuser, lsofés netstatparancsokat a terminálból (a kill mellett) segítségével megtalálhatja és leállíthatja a portszámot használó Linux-folyamatokat. Ezek a parancsok a legtöbb Linux operációs rendszeren működnek, beleértve az Ubuntut is.

Linux-folyamatok leállítása a beégető paranccsal

A folyamat leállításának egyik legegyszerűbb módja a portszám használatával a beégetőparancs használata. Ez a Linux terminál parancs listázhatja vagy leállíthatja a fájlokhoz vagy socketekhez hozzáférő folyamatokat. Ha egy alkalmazás hálózati tevékenységgel fut (és így nyitott portot használ), akkor valószínűleg e két dolog valamelyikét teszi.

Mielőtt folytatná, meg kell győződnie arról, hogy kényelmesen használja a parancssori terminált Linux számítógépén.

A fuserhasználatával portszámot használó folyamatok felsorolásához a következő szintaxist használhatja:

beégető -n protokoll port

Ebben a példában a protokolllehet tcpvagy udp, míg a porta kívánt portszám ellenőrizni. Például annak megtekintéséhez, hogy mely folyamatok használják a 80-as TCP-portot, futtassa:

beégető -n tcp 80

Ez kinyomtatja az adott portot használó folyamatok folyamatazonosítóit (PID).

A folyamatok leállításához adja hozzá a -kopciót a fixálóhoz. Ez SIGTERM jelet küld minden folyamatnak, megkérve őket, hogy kecsesen fejezzék be. Például:

beégető -k -n tcp 80

Ez leállítja az összes, a 80-as TCP-portot használó folyamatot.

Ha egyes folyamatok nem válaszolnak a SIGTERM-re, a -khelyett használhatja a -KILLparancsot. Ez megölési jelet (SIGKILL) küld, amely segíthet a jelenleg futó folyamatok azonnali leállításában. Ez azonban adatvesztést vagy sérülést okozhat, ezért óvatosan használja. Például:.

beégető -KILL -n tcp 80

Ez minden, a 80-as TCP-portot használó folyamatot megsemmisít. Ha bármilyen problémába ütközik, futtassa ezeket a parancsokat szuperfelhasználóként (a sudoparanccsal), vagy használja helyette a rootfelhasználót.

Linux-folyamatok leállítása az lsof paranccsal

Egy másik módja annak, hogy egy portszámot használva leállítsunk egy folyamatot egy Linux PC-n, azlsofparancs használata. Ez a parancs megjelenítheti a megnyitott fájlokat és socketeket a rendszeren.

Az adott portszámot használó folyamatok felsorolásához a következő szintaxist használhatja:

lsof -i protokoll:port

A korábbiakhoz hasonlóan a protokolllehet tcpvagy udp, míg a porta portszám, amelyet szeretne jelölje be. Például annak megtekintéséhez, hogy mely folyamatok használják az 53-as TCP-portot (általában DNS-kérésekhez használják), futtassa ezt a parancsot:

lsof -i tcp:53

Ez bizonyos információkat nyomtat az adott portot használó egyes folyamatokról, beleértve a PID-t is.

A folyamatok leállításához használja a-tkapcsolót az lsofmellett. Ez csak a folyamatok PID-jét nyomtatja ki minden egyéb információ nélkül. Ezt a kimenetet ezután a killparancsra irányíthatja bármilyen jelbeállítással. Például:

öld meg $(lsof -t -i tcp:53)

-t

Ez SIGTERM jeleket küld (alapértelmezett) az 53-as TCP-portot használó összes folyamatnak.

Ha egyes folyamatok nem reagálnak a SIGTERM jeleire, mint korábban, a killután a -9beállítást használhatja a semmi helyett. Ez SIGKILL jeleket küld, mint korábban, azonnali leállásra kényszerítve őket, de adatvesztést vagy adatsérülést is okozhat. Például:

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

Ez kényszerített SIGKILL-jeleket küld (alapértelmezett) minden, az 53-as TCP-portot használó folyamatnak.

Linux-folyamatok leállítása a netstat paranccsal

A netstatparanccsal is nyomon követheti a Linux PC-jén futó folyamatokat aktív és nyitott hálózati portok használatával. A netstat segítségével megtekintheti a rendszer hálózati kapcsolatait és statisztikáit, így pontosan meghatározhatja a problémás folyamatokat.

A folyamatok portszámmal és PID-vel történő felsorolásához két lehetőséget kell hozzáadnia: -p, amely a PID-eket mutatja, és -l, amely azt mutatja, csak lehallgató aljzatok..

Meg kell adnia a protokollt is (tcp, udp stb.), és opcionálisan szűrnie kell állapot szerint (LISTEN stb.). Például annak megtekintéséhez, hogy mely TCP-folyamatok figyelnek valamelyik porton, futtassa:

netstat -p tcp -l

Ez információkat nyomtat minden porton figyelő TCP-foglalatról, beleértve a PID-jüket is.

Adott portok szerinti szűréshez egy másik beállítást kell megadnia: -n, amely a nevek helyett numerikus címeket jelenít meg. Meg kell adnia a pontos címformátumot is: [protocol][@hostname|hostaddr][:service|port].

Például annak megtekintéséhez, hogy mely TCP-folyamatok figyelnek a 80-as porton, futtassa a következőket:

netstat -p tcp -l -n 80

Ez kinyomtatja a 8080-as porton figyelő minden TCP-socketre vonatkozó információkat, beleértve annak PID-jét is.

A folyamatok leállításához használhatja a killparancsot bármilyen jelbeállítással és a netstattól kapott PID-kkel. Például:

öld meg a 1234 5678 számot

Ez SIGTERM jeleket küld (alapértelmezett) a 1234és 5678PID-vel rendelkező folyamatoknak.

Ha egyes folyamatok nem reagálnak a SIGTERM jeleire, mint korábban, a killután a -9beállítást használhatja a semmi helyett. Ez SIGKILL jeleket küld, mint korábban, azonnali leállásra kényszerítve, de adatvesztést vagy adatsérülést okozhat, mint korábban. Például:

ölj -9 1234 5678

Ez SIGKILL jeleket küld például a 1234és az 5678PID-vel rendelkező folyamatoknak. Cserélje ki az 1234-eta futó folyamatnak megfelelő PID-re.

Linux-alkalmazások vezérlése

A fent vázolt lépéseknek köszönhetően gyorsan leállíthat egy futó Linux-folyamatot egy portszám használatával a Linux parancssor használatával. Ne felejtsen el körültekintően leállítani a folyamatokat, különösen a SIGKILL jelek esetén, mivel ezek nem kívánt mellékhatásokat okozhatnak – elvégre nem akarja a rendszer instabilitását okozni.

Szeretné alaposabban megnézni a rendszer teljesítményét Linuxon? Legközelebb érdemes lehet ellenőrizze a memóriahasználatot Linuxon. Ha aggódik egy esetleges biztonsági kockázat miatt, érdemes lehet változtassa meg a jelszót Linuxon is.

Új Linux disztribúcióra kell váltania? Ha kezdő vagy, fontolja meg a Linux Mintot egy biztonságos és stabil alternatíva..

.

Kapcsolódó hozzászólások:


2.04.2023