Come uccidere un processo Linux utilizzando un numero di porta


Ti sei mai imbattuto in una situazione in cui devi interrompere un processo in esecuzione su una porta specifica del tuo computer Linux?

Potresti temere che un'applicazione in esecuzione si comporti in modo anomalo o consumi le risorse di rete o la potenza della CPU locale. Tale applicazione potrebbe persino rappresentare una minaccia alla sicurezza che desideri eliminare.

Qualunque sia il motivo, puoi utilizzare i comandi fuser,lsofe netstatdal terminale (insieme a kill) per aiutarti a trovare e terminare qualsiasi processo Linux utilizzando un numero di porta. Questi comandi funzioneranno sulla maggior parte dei sistemi operativi Linux, incluso Ubuntu.

Come terminare un processo Linux utilizzando il comando fuser

Uno dei modi più semplici per terminare un processo utilizzando un numero di porta è utilizzare il comando fuser. Questo Comando da terminale Linux può elencare o terminare i processi che accedono a file o socket. Se un'app viene eseguita con attività di rete (e quindi utilizza una porta aperta), probabilmente sta facendo una di queste due cose.

Prima di procedere, devi assicurarti di essere a tuo agio nell'utilizzare un terminale a riga di comando sul tuo PC Linux.

Per elencare i processi che utilizzano un numero di porta utilizzando fuser, puoi utilizzare la seguente sintassi:

fusibile -n porta protocollo

In questo esempio, protocollopuò essere tcpo udp, mentre portè il numero di porta desiderato controllare. Ad esempio, per vedere quali processi utilizzano la porta TCP 80, puoi eseguire:

fusore -n tcp 80

Questo stamperà gli ID di processo (PID) dei processi che utilizzano quella porta.

Per terminare questi processi, puoi aggiungere l'opzione -ka fuser. Ciò invierà un segnale SIGTERM a ciascun processo, chiedendo loro di terminare con garbo. Ad esempio:

fusore -k -n tcp 80

Questo ucciderà tutti i processi che utilizzano la porta TCP 80.

Se alcuni processi non rispondono a SIGTERM, puoi utilizzare -KILLinvece di -k. Questo invierà un segnale di kill (SIGKILL), che può aiutare a forzare la terminazione immediata dei processi attualmente in esecuzione che hai identificato. Tuttavia, ciò potrebbe causare la perdita o il danneggiamento dei dati, quindi utilizzalo con cautela. Per esempio:.

fusore -KILL -n tcp 80

Ciò ucciderà forzatamente tutti i processi che utilizzano la porta TCP 80. In caso di problemi, esegui questi comandi come superutente (utilizzando il comando sudo) o utilizzando invece l'utente root.

Come terminare un processo Linux utilizzando il comando lsof

Un altro modo per terminare un processo utilizzando un numero di porta su un PC Linux è utilizzare il comandolsof. Questo comando può elencare file e socket aperti sul tuo sistema.

Per elencare i processi che utilizzano un numero di porta specifico, è possibile utilizzare la seguente sintassi:

lsof -i protocollo:porta

Come prima, il protocollopuò essere tcpo udp, mentre portè il numero di porta che desideri controllo. Ad esempio, per vedere quali processi utilizzano la porta TCP 53 (tipicamente utilizzata per le richieste DNS), puoi eseguire questo comando:

lsof -i tcp:53

Questo stamperà alcune informazioni su ciascun processo che utilizza quella porta, incluso il suo PID.

Per terminare questi processi, puoi utilizzare l'opzione-tconlsof. Questo stamperà solo i PID dei processi senza altre informazioni. Puoi quindi reindirizzare questo output al comando killcon qualsiasi opzione di segnale. Ad esempio:

uccidi $(lsof -t -i tcp:53)

Questo invierà segnali SIGTERM (impostazione predefinita) a tutti i processi che utilizzano la porta TCP 53.

Se alcuni processi non rispondono ai segnali SIGTERM come prima, puoi utilizzare -9invece di niente dopo kill. Ciò invierà segnali SIGKILL come prima, costringendoli a terminare immediatamente ma potrebbe anche causare perdita o danneggiamento dei dati. Ad esempio:

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

Ciò invierà forzatamente segnali SIGKILL (impostazione predefinita) a tutti i processi che utilizzano la porta TCP 53.

Come terminare un processo Linux utilizzando il comando netstat

Puoi anche utilizzare il comando netstatper tracciare i processi in esecuzione sul tuo PC Linux utilizzando porte di rete attive e aperte. netstat ti consente di visualizzare le connessioni di rete e le statistiche sul tuo sistema, permettendoti di individuare i processi problematici.

Per elencare i processi utilizzando un numero di porta insieme ai relativi PID, è necessario aggiungere due opzioni: -p, che mostra i PID, e -l, che mostra solo prese di ascolto..

Devi anche specificare il protocollo (tcp, udp, ecc.) e facoltativamente filtrare per stato (ASCOLTA, ecc.). Ad esempio, per vedere quali processi TCP sono in ascolto su qualsiasi porta, puoi eseguire:

netstat -p tcp -l

Questo stamperà le informazioni su ciascun socket TCP in ascolto su qualsiasi porta, incluso il suo PID.

Per filtrare in base a porte specifiche, devi aggiungere un'altra opzione: -n, che mostra indirizzi numerici anziché nomi. È inoltre necessario specificare il formato esatto dell'indirizzo: [protocol][@hostname|hostaddr][:service|port].

Ad esempio, per vedere quali processi TCP sono in ascolto sulla porta 80, puoi eseguire:

netstat -p tcp -l -n 80

Verranno stampate le informazioni su ciascun socket TCP in ascolto sulla porta 8080, incluso il relativo PID.

Per terminare questi processi, puoi utilizzare il comando killcon qualsiasi opzione di segnale desideri e i PID ottenuti da netstat. Ad esempio:

uccidi 1234 5678

Ciò invierà segnali SIGTERM (impostazione predefinita) ai processi con PID 1234e 5678.

Se alcuni processi non rispondono ai segnali SIGTERM come prima, puoi utilizzare -9invece di niente dopo kill. Ciò invierà segnali SIGKILL come prima, costringendoli a terminare immediatamente ma potrebbe causare la perdita o il danneggiamento dei dati come prima. Ad esempio:

uccidi -9 1234 5678

Ciò invierà segnali SIGKILL ai processi con PID 1234e 5678in modo forzato, ad esempio. Sostituisci 1234con il PID corretto per il processo in esecuzione.

Controlla le tue applicazioni Linux

Grazie ai passaggi sopra descritti, puoi terminare rapidamente un processo Linux in esecuzione utilizzando un numero di porta utilizzando la riga di comando di Linux. Ricorda di prestare attenzione quando interrompi i processi, in particolare con i segnali SIGKILL, poiché potrebbero causare effetti collaterali indesiderati: dopotutto non vorrai causare instabilità del sistema.

Vuoi osservare più da vicino le prestazioni del tuo sistema su Linux? Potresti voler controlla l'utilizzo della memoria su Linux successivo. Se temi un potenziale rischio per la sicurezza, potresti voler farlo anche tu cambia la tua password su Linux.

Devi passare a una nuova distribuzione Linux? Se sei un principiante, considera Linux Mint un'alternativa sicura e stabile..

.

Post correlati:


2.04.2023