Useremo Ubuntu con dei comandi che non sono purtroppo disponibili su Windows e non potrebbero mai girare su una semplice scheda Arduino. In questo post vedremo come usare fuser nel terminale di Ubuntu.
Potremmo lanciare il comando ps -ea per andare a spulciare tra tutti i programmi in esecuzione ma perderemmo troppo tempo.
$ fuser -i :3000
oppure
$ fuser -i :8000
facendo attenzione a lasciare uno spazio prima dei “due punti”.
Riceveremo un messaggio del tipo:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 16176 utente 22u IPv4 26591333 0t0 TCP :3000 (LISTEN)
e da questo siamo in grado di capire che un server node sta girando in sottofondo (come demon) con un PID = 16176. Per bloccarlo ci basta scrivere:
$ kill -9 16176 (o qualunque numero sia il PID)
facendo come sempre attenzione agli spazi.
In alternativa puoi usare invece netstat insieme a grep per cercare il programma che occupa la porte 80 o 3000 o 8000.
sudo netstat -ltnp | grep 80
sudo netstat -ltnp | grep 3000
sudo netstat -ltnp | grep 8000
Dopo avere ottenuto il messaggio:
tcp 0 0 0.0.0.0:3000 0.0.0.0: LISTEN 16176/node
possiamo procedere con il solito comando kill -9 PID per “stoppare” il programma che ci dà fastidio.
Ecco alcuni esempi di come i programmatori evoluti possono utilizzare la shell di Ubuntu:
Se sei un programmatore evoluto, ti consiglio di dare un’occhiata alla shell di Ubuntu. È uno strumento potente e flessibile che può aiutarti a essere più produttivo e a risolvere i problemi più velocemente.
Seppure in linea di massima chi lavora nel mondo IOT tende a preferire Linux, anche nel mondo Windows esiste un comando simile.
Ecco un esempio di come utilizzare il comando “lsof”:
$ lsof -i
Questo comando elencherà tutti i file aperti su tutte le porte di rete. Puoi anche utilizzare il comando “lsof” per elencare i file aperti su una porta specifica, come ad esempio:
$ lsof -i :80
Questo comando elencherà tutti i file aperti sulla porta 80.
Il comando “lsof” può essere uno strumento utile per trovare file o porte che sono in uso da più di un processo, o per trovare processi che stanno utilizzando determinati file o porte.
Robotdazero.it - post - R.172.3.3.5