Ați întâlnit vreodată o situație în care trebuie să opriți un proces care rulează pe un anumit port de pe mașina dvs. Linux?
S-ar putea să vă faceți griji că o aplicație pe care o rulați nu se comportă greșit sau vă strânge resursele de rețea sau puterea procesorului local. O astfel de aplicație ar putea fi chiar o amenințare de securitate pe care doriți să o eliminați.
Orice ar fi motivul, puteți utiliza comenzile fuser, lsofși netstatde la terminal (împreună cu kill) pentru a vă ajuta să găsiți și să opriți orice proces Linux folosind un număr de port. Aceste comenzi vor funcționa pe majoritatea sistemelor de operare Linux, inclusiv Ubuntu.
Cum să omorâți un proces Linux folosind comanda Fuser
Una dintre cele mai simple moduri de a opri un proces folosind un număr de port este să folosiți comanda fuser. Acest Comanda terminalului Linux poate enumera sau ucide procesele care accesează fișiere sau socket-uri. Dacă o aplicație rulează cu activitate în rețea (și astfel folosește un port deschis), probabil că face unul dintre aceste două lucruri.
Înainte de a continua, va trebui să vă asigurați că vă simțiți confortabil să utilizați un terminal de linie de comandă pe computerul dvs. Linux.
Pentru a lista procesele care folosesc un număr de port folosind fuser, puteți utiliza următoarea sintaxă:
fuser -n port protocol
În acest exemplu, protocolulpoate fi tcpsau udp, în timp ce porteste numărul portului pe care îl doriți a verifica. De exemplu, pentru a vedea ce procese folosesc portul TCP 80, puteți rula:
fuser -n tcp 80
Acest lucru va imprima ID-urile de proces (PID) ale proceselor care utilizează portul respectiv.
Pentru a opri aceste procese, puteți adăuga opțiunea -kla fuser. Acest lucru va trimite un semnal SIGTERM fiecărui proces, cerându-le să se încheie cu grație. De exemplu:
fuser -k -n tcp 80
Acest lucru va distruge toate procesele care utilizează portul TCP 80.
Dacă unele procese nu răspund la SIGTERM, puteți folosi -KILLîn loc de -k. Acest lucru va trimite un semnal de ucidere (SIGKILL), care poate ajuta la forțarea proceselor care rulează în prezent pe care le-ați identificat să se încheie imediat. Cu toate acestea, acest lucru poate cauza pierderea sau coruperea datelor, așa că utilizați-l cu precauție. De exemplu:.
topitor -KILL -n tcp 80
Acest lucru va ucide toate procesele care utilizează portul TCP 80 cu forță. Dacă întâmpinați probleme, rulați aceste comenzi ca super utilizator (folosind comanda sudo) sau folosind în schimb utilizatorul rădăcină.
Cum să omorâți un proces Linux folosind comanda lsof
O altă modalitate de a opri un proces folosind un număr de port pe un PC Linux este să utilizați comandalsof. Această comandă poate enumera fișierele și socket-urile deschise de pe sistemul dvs.
Pentru a lista procesele care folosesc un anumit număr de port, puteți utiliza următoarea sintaxă:
lsof -i protocol:port
Ca și înainte, protocolulpoate fi tcpsau udp, în timp ce porteste numărul portului pe care doriți să îl Verifica. De exemplu, pentru a vedea ce procese folosesc portul TCP 53 (utilizat de obicei pentru cererile DNS), puteți rula această comandă:
lsof -i tcp:53
Acest lucru va imprima câteva informații despre fiecare proces care utilizează acel port, inclusiv PID-ul acestuia.
Pentru a opri aceste procese, puteți folosi opțiunea-tculsof. Acest lucru va imprima doar PID-urile proceselor fără alte informații. Puteți apoi să direcționați această ieșire către comanda killcu orice opțiune de semnal. De exemplu:
ucide $(lsof -t -i tcp:53)
Acest lucru va trimite semnale SIGTERM (implicit) către toate procesele care utilizează portul TCP 53.
Dacă unele procese nu răspund la semnalele SIGTERM ca înainte, puteți folosi -9în loc de nimic după kill. Acest lucru va trimite semnale SIGKILL ca înainte, forțându-le să se termine imediat, dar poate provoca și pierderea sau coruperea datelor. De exemplu:
ucide -9 $(lsof -t -i tcp:53)
Acest lucru va trimite cu forță semnale SIGKILL (implicit) către toate procesele care utilizează portul TCP 53.
Cum să omorâți un proces Linux folosind comanda netstat
De asemenea, puteți utiliza comanda netstatpentru a urmări procesele care rulează pe computerul dvs. Linux utilizând porturi de rețea active și deschise. netstat vă permite să vizualizați conexiunile de rețea și statisticile pe sistemul dvs., permițându-vă să identificați procesele problematice.
Pentru a lista procesele folosind un număr de port împreună cu PID-urile lor, trebuie să adăugați două opțiuni: -p, care arată PID-urile și -l, care arată numai prize de ascultare..
De asemenea, trebuie să specificați protocolul (tcp, udp etc.) și, opțional, să filtrați după stare (LISTEN etc.). De exemplu, pentru a vedea ce procese TCP ascultă pe orice porturi, puteți rula:
netstat -p tcp -l
Acest lucru va imprima informații despre fiecare socket TCP care ascultă pe orice porturi, inclusiv PID-ul acestuia.
Pentru a filtra după anumite porturi, trebuie să adăugați o altă opțiune: -n, care afișează adrese numerice în loc de nume. De asemenea, trebuie să specificați formatul exact al adresei: [protocol][@hostname|hostaddr][:service|port].
De exemplu, pentru a vedea ce procese TCP ascultă pe portul 80, puteți rula:
netstat -p tcp -l -n 80
Acest lucru va imprima informații despre fiecare soclu TCP care ascultă pe portul 8080, inclusiv PID-ul acestuia.
Pentru a opri aceste procese, puteți folosi comanda killcu orice opțiune de semnal dorită și cu PID-urile pe care le-ați obținut de la netstat. De exemplu:
ucide 1234 5678
Acest lucru va trimite semnale SIGTERM (prestabilit) proceselor cu PID-urile 1234și 5678.
Dacă unele procese nu răspund la semnalele SIGTERM ca înainte, puteți folosi -9în loc de nimic după kill. Acest lucru va trimite semnale SIGKILL ca înainte, forțându-le să se termine imediat, dar poate provoca pierderea sau coruperea datelor ca înainte. De exemplu:
ucide -9 1234 5678
Acest lucru va trimite cu forță semnale SIGKILL proceselor cu PID-urile 1234și 5678, de exemplu. Înlocuiți 1234cu PID-ul corect pentru procesul dvs. de rulare.
Controlați-vă aplicațiile Linux
Datorită pașilor menționați mai sus, puteți opri rapid un proces Linux care rulează folosind un număr de port folosind linia de comandă Linux. Nu uitați să fiți precaut atunci când opriți procesele, în special cu semnalele SIGKILL, deoarece acestea pot provoca efecte secundare nedorite - nu doriți să provocați instabilitate a sistemului, până la urmă.
Vrei să te uiți mai atent la performanța sistemului tău pe Linux? Poate doriți să verificați utilizarea memoriei pe Linux în continuare. Dacă sunteți îngrijorat de un potențial risc de securitate, vă recomandăm să faceți și schimbați-vă parola pe Linux.
Trebuie să treceți la o nouă distribuție Linux? Dacă ești începător, luați în considerare Linux Mint o alternativă sigură și stabilă..
.