Ti è mai capitato di dover interrompere un processo in esecuzione su una porta specifica della tua macchina Linux?

Potresti essere preoccupato 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 anche essere una minaccia alla sicurezza che si desidera eliminare.

Sommario

Qualunque sia la ragione, puoi utilizzare i comandi fuser, lsof e netstat dal 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 fusore. Questo comando del 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’usare 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:

fuser-n protocol port

In questo esempio, protocol può essere tcp o udp, mentre port è il numero di porta che vuoi controllare. Ad esempio, per vedere quali processi utilizzano la porta TCP 80, puoi eseguire:

fuser-n tcp 80

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

Per terminare quei processi, puoi aggiungere l’opzione-k a fuser. Questo invierà un segnale SIGTERM a ciascun processo, chiedendo loro di terminare con garbo. Ad esempio:

fuser-k-n tcp 80

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

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

fuser-KILL-n tcp 80

Questo terminerà 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 comando lsof. Questo comando può elencare file e socket aperti sul tuo sistema.

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

lsof-i protocol:port

Come prima, il protocollo può essere tcp o udp, mentre port è il numero di porta che vuoi controllare. 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à alcuni informazioni su ogni processo che utilizza quella porta, incluso il suo PID.

Per terminare quei processi, puoi usare l’opzione-t con lsof. Questo stamperà solo i PID dei processi senza altre informazioni. È quindi possibile reindirizzare questo output al comando kill con qualsiasi opzione di segnale. Ad esempio:

kill $(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 usare-9 invece di niente dopo kill. Ciò invierà segnali SIGKILL come prima, costringendoli a terminare immediatamente ma potrebbe anche causare la perdita o il danneggiamento dei dati. Ad esempio:

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

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

Come uccidere un processo Linux usando il comando netstat

Puoi anche usare il comando netstat per rintracciare i processi in esecuzione sul tuo PC Linux usando 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 che utilizzano un numero di porta insieme ai loro PID, è necessario aggiungere due opzioni:-p, che mostra i PID, e-l, che mostra solo i socket in ascolto.

Devi anche specificare il protocollo (tcp, udp, ecc.) e facoltativamente filtrare per stato (LISTEN, 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 relativo PID.

Per filtrare per porte specifiche, devi aggiungere un’altra opzione:-n, che mostra gli indirizzi numerici invece dei nomi. È inoltre necessario specificare il formato esatto dell’indirizzo: [protocollo][@hostname|hostaddr][:servizio|porta].

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

netstat-p tcp-l-n 80

Ciò stampa informazioni su ciascun socket TCP in ascolto sulla porta 8080, incluso il suo PID.

Per terminare quei processi, puoi usare il comando kill con qualsiasi opzione di segnale che desideri e i PID che hai ottenuto da netstat. Ad esempio:

kill 1234 5678

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

Se alcuni processi non rispondi ai segnali SIGTERM come prima, puoi usare-9 invece 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:

kill-9 1234 5678

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

Controlla le tue applicazioni Linux

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

Vuoi esaminare più da vicino le prestazioni del tuo sistema su Linux? Potresti voler controllare l’utilizzo della memoria su Linux in seguito. Se sei preoccupato per un potenziale rischio per la sicurezza, potresti voler cambiare la tua password anche su Linux.

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

Categories: IT Info