Il riavvio del server Django visualizza il seguente errore:
this port is already running....
Questo problema si verifica specificamente su Ubuntu e non su altri sistemi operativi. Come posso liberare la porta per riavviare il server?
Il riavvio del server Django visualizza il seguente errore:
this port is already running....
Questo problema si verifica specificamente su Ubuntu e non su altri sistemi operativi. Come posso liberare la porta per riavviare il server?
Risposte:
Una soluzione più semplice basta digitare sudo fuser -k 8000/tcp. Questo dovrebbe uccidere tutti i processi associati alla porta 8000.
MODIFICARE:
Per gli utenti osx è possibile utilizzare sudo lsof -t -i tcp:8000 | xargs kill -9
netstat -ntlp
Mostrerà qualcosa del genere.
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 6599/python
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN -
tcp 0 0 192.168.124.1:53 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp6 0 0 :::3306 :::* LISTEN
Quindi ora basta chiudere la porta in cui Django / Python è già in esecuzione uccidendo il processo ad esso associato.
kill -9 PID
nel mio caso
kill -9 6599
Ora esegui la tua app Django.
ps aux | grep -i manage
after that you will see all process
ubuntu@ip-10-154-22-113:~/django-apps/projectname$ ps aux | grep -i manage
ubuntu 3439 0.0 2.3 40228 14064 pts/0 T 06:47 0:00 python manage.py runserver project name
ubuntu 3440 1.4 9.7 200996 59324 pts/0 Tl 06:47 2:52 /usr/bin/python manage.py runserver project name
ubuntu 4581 0.0 0.1 7988 892 pts/0 S+ 10:02 0:00 grep --color=auto -i manage
kill -9 process id
e.d kill -9 3440
`enter code here`after that :
python manage.py runserver project name
Per impostazione predefinita, il comando RunServer avvia il server di sviluppo sull'IP interno sulla porta 8000.
Se si desidera modificare la porta del server, passarlo come argomento della riga di comando. Ad esempio, questo comando avvia il server sulla porta 8080:
python manage.py runserver 8080
Non usiamo questo comando {sudo lsof -t -i tcp: 8000 | xargs kill -9} Perché è vicino a tutte le schede ... Dovresti usarlo per
ps -ef | pitone grep
kill -9 process_id
ps -ef | grep python (mostra tutto il processo con id)
kill -9 11633 (11633 è un ID processo per: - / bin / python manage.py RunServer)
Questa è un'espansione della risposta di Mounir. Ho aggiunto uno script bash che lo copre per te. Esegui ./scripts/runserver.shinvece di ./manage.py runservere funzionerà esattamente allo stesso modo.
#!/bin/bash
pid=$(ps aux | grep "./manage.py runserver" | grep -v grep | head -1 | xargs | cut -f2 -d" ")
if [[ -n "$pid" ]]; then
kill $pid
fi
fuser -k 8000/tcp
./manage.py runserver
Per me, questo accade perché la mia richiesta API in Postman viene intercettata da un punto di interruzione del debugger nella mia app ... lasciando la richiesta in sospeso. Se annullo la richiesta in Postman prima di uccidere il server della mia app, l'errore non si verifica in primo luogo.
-> Quindi prova a cancellare tutte le richieste aperte che stai facendo in altri programmi.
Su macOS, ho usato sudo lsof -t -i tcp:8000 | xargs kill -9quando ho dimenticato di annullare la richiesta http aperta per risolvere error = That port is already in use.anche questo. Completa la mia app Postman, ecco perché la mia prima soluzione è migliore.
Digita 'fg' come comando dopo quel ctl-c.
Comando:
Fg mostrerà quale è in esecuzione in background. Dopo che ctl-c lo fermerà.
fg
ctl-c
ps aux | gestire grep
ubuntu 3438 127.0.0 2.3 40256 14064 pts / 0 T 06:47 0:00 python manage.py corsa server
uccidere -9 3438
Sembra che IDE, VSCode, Puppeteer, nodemon, express, ecc. Causino questo problema, hai eseguito un processo in background o hai appena chiuso l'area di debug [browser, terminale, ecc.] O qualunque altra cosa, ho risposto alla stessa domanda prima, ecco il link
se hai riscontrato questo problema in Mac devi solo aprire Activity Monitor e forzare abbastanza Python, quindi riprovare
Nel caso in cui si stia utilizzando il terminale dello schermo del VSC, l'errore potrebbe essere dovuto al fatto che si esegue già server in un'altra shell.
Basta fare clic sulla casella a sinistra del segno + nell'intestazione del terminale di VSC e selezionare qualche altra shell e verificare se il server è già in esecuzione lì. Esci da quel server e sei pronto per avviare un altro server.
sudo lsof -i tcp:8000quindi uccidere gli ID di processo che compaiono.