GNU/Linux >> Linux Esercitazione >  >> Linux

Come eliminare l'esecuzione del processo Linux su una porta particolare

In Linux, processi e porte hanno una relazione simbiotica. Uno non può esistere né funzionare senza l'altro. I processi tendono a condividere le porte e alcuni processi si basano su una porta specifica per raggiungere un obiettivo del sistema operativo.

Questa guida all'articolo fornisce una procedura dettagliata su come liberare una porta utilizzata da un processo per utilizzarla su un altro processo.

Come elencare un porto con il relativo processo associato

Se puoi elencare una porta target e un processo PID , puoi terminare il processo ad esso associato. Esistono diversi strumenti che puoi utilizzare per elencare le porte utilizzate attivamente in Linux.

Un consiglio o un approccio più flessibile è tramite il comando Network Statistics (netstat) o comando ss (più veloce di netstat ). È un'installazione predefinita nella maggior parte delle distribuzioni Linux, ma puoi installarla con il seguente comando se non è presente.

Installa Netstat e SS Command in Linux

$ sudo apt-get install net-tools iproute   [On Debian/Ubuntu & Mint] 
$ sudo dnf install net-tools iproute       [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
$ pacman -S netstat-nat iproute            [On Arch Linux]
$ emerge sys-apps/net-tools iproute        [On Gentoo]
$ sudo dnf install net-tools iproute       [On Fedora]
$ sudo zypper install net-tools iproute    [On openSUSE]

Per elencare una porta e scoprire se è bloccata su un particolare processo o servizio, attenersi alla seguente regola di sintassi.

$ sudo netstat -ltnp | grep -w ':[targeted_port]'
OR
$ ss -ltnp | grep -w ':[targeted_port]'

Ad esempio, processi o servizi in ascolto sulla porta 80 possono essere elencati nel modo seguente.

$ sudo netstat -ltnp | grep -w ':80'
OR
$ ss -ltnp | grep -w ':80'

Sotto la stringa di comando "netstat -ltnp ”, l'opzione -p punta a 1520 che è il PID del processo che desideri eliminare. Prendi nota.

Come creare un processo fittizio in Linux

Per non rovinare l'ecosistema del tuo sistema operativo Linux, creeremo alcuni processi fittizi e li useremo per dimostrare l'obiettivo di questo articolo. Useremo il "socat ” utility da riga di comando per creare i nostri processi demo.

Abbiamo tre processi in SCTP , TCP e UDP rispettivamente protocolli. Collegheremo questi nuovi processi a una porta casuale come 9999 .

Il comando seguente genererà un processo temporaneo con un PID (ID processo ) di 8695 .

$ socat sctp-listen:9999,bind=127.0.0.1 stdout &

Il comando seguente genererà un processo temporaneo con un PID (ID processo) di 9080 .

$ socat tcp-listen:9999,bind=127.0.0.1 stdout &

Il comando seguente genererà un processo temporaneo con un PID (ID processo) di 9270 .

$ socat udp-listen:9999,bind=127.0.0.1 stdout &

Come eliminare un processo con il suo PID (ID processo)

Usando il "kill -9" comando, possiamo sbarazzarci di un processo che tiene in ostaggio un numero di porta che vogliamo utilizzare su un altro processo prioritario. In questo caso, abbiamo creato tre processi con PID 8695 , 9080 e 9270 .

Per terminare il processo con PID 8695 , ho eseguito il seguente comando:

$ kill -9 8695

Possiamo anche uccidere più di un processo alla volta. Per terminare i processi creati con PID 9080 e 9270 , usa un comando simile a questo:

$ kill -9 9080 9270

Sia che tu stia uccidendo un processo o più di un processo contemporaneamente, l'esecuzione del comando kill dovrebbe portare a un'istanza terminale vuota come illustrato sopra.

Per confermare che i processi non sono più attivi, proveremo a eseguire nuovamente il comando kill :

$ kill -9 8695

Un messaggio di errore indicherà che il processo non è più attivo. Inoltre, i due processi recentemente uccisi [2] 9080 e [3] 9270 vengono visualizzati come non più attivi.

Nota finale

Le regole per uccidere un processo in esecuzione sono semplici. Innanzitutto, identifica la porta che desideri utilizzare tramite il "netstat ” o “ss” comando e quindi prendere nota del PID allegato al processo. Infine, usa il "uccidi -9" comando insieme al PID identificato per sbarazzarsi di quel processo.


Linux
  1. Come uccidere un processo zombie su Linux

  2. Come riavviare (o ripristinare) un processo in esecuzione in Linux?

  3. Come eliminare i processi in esecuzione in Linux

  4. Come uccidere un processo in esecuzione su una porta specifica in Linux?

  5. Come uccidere un processo su Linux usando il comando?

Come elencare i processi in esecuzione in Linux:una guida per principianti

Come uccidere un processo in Linux

Kill Command in Linux

Come uccidere i processi Zombie in Linux

Come trovare e uccidere i processi in esecuzione in Linux

Come KILL un processo su Linux