Come terminare un processo Linux tramite il numero di porta
Ti è mai capitato di trovarti in una situazione in cui un processo sta monopolizzando una porta sul tuo computer Linux e vorresti semplicemente liberartene? Forse un’app si è bloccata, o sei preoccupato che qualcosa di subdolo si stia insinuando nelle tue risorse di rete. Qualunque sia il motivo, sapere come trovare e terminare quel processo può risparmiarti un sacco di grattacapi. Fortunatamente, Linux offre alcuni comandi utili ( fusore, lsof e netstat ) che, con un po’ di magia da riga di comando, possono aiutarti a identificare cosa sta utilizzando una porta specifica e a chiuderla.
Certo, se non sei abituato a lavorare nel terminale, all’inizio potrebbe sembrare un po’ scoraggiante. Ma familiarizzare con questi strumenti significa che sarai in grado di risolvere problemi di rete, bloccare app che si comportano in modo anomalo o persino eliminare potenziali minacce alla sicurezza abbastanza rapidamente. Fai solo attenzione: terminare i processi con kill -9 non è sempre una buona idea e potrebbe causare la perdita di dati se non si presta attenzione.
Come terminare un processo Linux usando il comando fuser
Metodo 1: Utilizzofuser
Questo è probabilmente il modo più semplice. Il fusercomando indica quali processi stanno accedendo a una particolare porta o risorsa.È molto utile quando si conosce solo il numero di porta e si vuole vedere chi sta accedendo.
Perché è utile? Elenca gli ID di processo (PID) associati a una porta, così non devi cercare troppo. Quando si applica? Di solito quando una porta sembra bloccata o si verificano conflitti per “porta già in uso”.Cosa ti aspetti? L’esecuzione fuserti fornirà i PID, mentre l’aggiunta -kinterromperà quei processi.
Ecco la sintassi tipica:
fuser -n tcp 80
Sostituisci tcpcon udpse necessario e 80con la porta di destinazione. Questo elenca i processi che utilizzano la porta TCP 80. Per terminare questi processi, basta aggiungere -k:
sudo fuser -k -n tcp 80
L’esecuzione come superutente è spesso necessaria, soprattutto se non si è il proprietario di quei processi. In alcune configurazioni, non eseguire con sudopotrebbe non elencare o terminare tutto.
Attenzione: usare SIGKILL -KILLal posto di -ksends, che forza la terminazione dei processi senza eseguire la pulizia. A volte funziona, ma attenzione: può causare la perdita di dati. Usare solo se SIGTERM non risolve il problema. Esempio:
sudo fuser -KILL -n tcp 80
Metodo 2: Utilizzolsof
Un altro approccio, soprattutto se si desiderano dettagli su cosa sta gestendo una porta, è il lsofcomando. Mostra i file aperti e, nel mondo Linux, i socket di rete sono file.
Perché scegliere questo comando? Se si desidera un elenco rapido dei processi con i relativi PID e alcune informazioni su come si connettono. Quando usarlo? In genere, se fusernon è disponibile o se si preferiscono maggiori informazioni. Il comando di base è il seguente:
lsof -i tcp:80
In questo modo vengono visualizzati i processi in ascolto o connessi tramite la porta TCP 80. Per ottenere solo i PID, è possibile procedere come segue:
kill $(lsof -t -i tcp:80)
Se alcuni processi si rifiutano di arrestarsi con i segnali normali, è possibile forzare l’arresto con -9:
kill -9 $(lsof -t -i tcp:80)
Attenzione: come sempre, l’interruzione forzata può causare problemi se i processi in questione svolgono attività critiche. Usatela con parsimonia.
Metodo 3: Utilizzonetstat
Questo è un po’ datato ma è ancora utile in molti casi.netstatMostra le connessioni di rete attive e i socket in ascolto, insieme ai PID quando si utilizzano i flag giusti.
Perché preoccuparsene? Se vuoi vedere cosa è in ascolto su porte specifiche, magari prima di eliminarlo. Quando? Quando il tuo sistema sembra avere porte occupate e non sei sicuro di cosa. Il comando potrebbe essere simile a:
sudo netstat -p tcp -l -n
Questo elenca i socket TCP in ascolto con informazioni sui processi. Per filtrare per una porta specifica come 80, potrebbe essere necessario combinarlo con altri strumenti come grep, poiché netstatnon filtra direttamente per porta:
sudo netstat -p tcp -l -n | grep :80
Dall’output, annotare il PID, quindi terminare con:
sudo kill 1234
Oppure, per fermare con forza:
sudo kill -9 1234
Nota: per la maggior parte di queste operazioni sarà necessario usare sudo, perché netstat spesso richiede i permessi di root per visualizzare tutte le informazioni sui processi. Inoltre, ricorda che eliminare direttamente i PID può causare l’eliminazione di processi non correlati se non si presta attenzione, quindi controlla attentamente prima di eseguire i comandi.
Controlla le tue applicazioni Linux
Nel complesso, questi comandi offrono un valido strumento per bloccare i processi bloccati su determinate porte di rete. Ricordatevi solo di essere prudenti: forzare l’arresto con kill -9può a volte creare problemi o causare il danneggiamento dei dati. In caso di dubbi, provate prima un SIGTERM più delicato.
E se siete paranoici in fatto di sicurezza, questo è un buon modo per controllare chi o cosa si aggira sulle vostre porte. O magari semplicemente eliminare un processo non autorizzato che si è aperto per errore. Su una configurazione ha funzionato la prima volta, su un’altra, non così tanto: la casualità di Linux rende le cose interessanti.
Perché, naturalmente, a volte Linux deve rendere le cose un po’ più difficili del necessario.
Riepilogo
- Utilizzato
fuser -n tcp/udp [port]per trovare e terminare i processi su una porta. - Utilizzare
lsof -i tcp:portper identificare e poikilli processi. - Utilizzare
netstat -p tcp -l -nper visualizzare i socket in ascolto attivo e ottenere i PID. - Prestare attenzione alle uccisioni forzate, in particolare con
-9; può causare perdita di dati o instabilità.
Incartare
Tutto ciò potrebbe sembrare eccessivo all’inizio, ma una volta che ci si abitua, chiudere i processi problematici diventa una seconda natura. Ricordatevi solo di controllare attentamente cosa state eliminando: nessuno vuole mandare in crash un servizio di sistema vitale per sbaglio. Speriamo che questo aiuti a risolvere quei fastidiosi conflitti di porta e a mantenere il vostro computer Linux in perfetta efficienza.
Articoli correlati
Questo articolo è stato utile?