Restart server Django menampilkan kesalahan berikut:
this port is already running....
Masalah ini terjadi secara khusus pada Ubuntu dan bukan sistem operasi lain. Bagaimana saya bisa membebaskan port untuk me-restart server?
Restart server Django menampilkan kesalahan berikut:
this port is already running....
Masalah ini terjadi secara khusus pada Ubuntu dan bukan sistem operasi lain. Bagaimana saya bisa membebaskan port untuk me-restart server?
Jawaban:
Solusi yang lebih sederhana, cukup ketik sudo fuser -k 8000/tcp
. Ini akan mematikan semua proses yang terkait dengan port 8000.
EDIT:
Untuk pengguna osx yang dapat Anda gunakan sudo lsof -t -i tcp:8000 | xargs kill -9
netstat -ntlp
Ini akan menunjukkan sesuatu seperti ini.
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
Jadi sekarang tutup saja port di mana Django / python sudah berjalan dengan mematikan proses yang terkait dengannya.
kill -9 PID
dalam kasus saya
kill -9 6599
Sekarang jalankan aplikasi Django Anda.
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
Secara default, perintah runserver memulai server pengembangan pada IP internal di port 8000.
Jika Anda ingin mengubah port server, berikan itu sebagai argumen baris perintah. Sebagai contoh, perintah ini memulai server pada port 8080:
python manage.py runserver 8080
Kami tidak menggunakan perintah ini {sudo lsof -t -i tcp: 8000 | xargs kill -9} Karena itu tutup semua tab ... Anda harus menggunakannya untuk
ps-id | grep python
bunuh -9 process_id
ps-id | grep python (tampilkan semua proses dengan id)
kill -9 11633 (11633 adalah id proses untuk: - / bin / python manage.py runserver)
Ini adalah perluasan dari jawaban Mounir. Saya telah menambahkan skrip bash yang mencakup ini untuk Anda. Jalankan saja ./scripts/runserver.sh
alih-alih ./manage.py runserver
dan itu akan bekerja dengan cara yang persis sama.
#!/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
Bagi saya, ini terjadi karena permintaan API saya di Postman sedang dicegat oleh breakpoint debugger di aplikasi saya ... membiarkan permintaan menggantung. Jika saya membatalkan permintaan di tukang pos sebelum membunuh server aplikasi saya, kesalahan tidak terjadi di tempat pertama.
-> Jadi, coba batalkan semua permintaan terbuka yang Anda buat di program lain.
Di macOS, saya telah menggunakan sudo lsof -t -i tcp:8000 | xargs kill -9
ketika saya lupa untuk membatalkan permintaan http terbuka untuk menyelesaikan error = That port is already in use.
ini juga, lengkap menutup aplikasi Postman saya, itulah sebabnya solusi pertama saya lebih baik.
Ketik 'fg' sebagai perintah setelah itu ctl-c.
Perintah:
Fg akan menampilkan yang sedang berjalan di latar belakang. Setelah itu ctl-c akan menghentikannya.
fg
ctl-c
ps aux | grep kelola
ubuntu 3438 127.0.0 2.3 40256 14064 pts / 0 T 06:47 0:00 python manage.py runserver
bunuh -9 3438
Tampaknya IDE, VSCode, Dalang, nodemon, express, dll. Menyebabkan masalah ini, Anda menjalankan proses di latar belakang atau hanya menutup area debugging [browser, terminal, dll] atau apa pun, bagaimanapun, saya telah menjawab pertanyaan yang sama sebelumnya, ini dia tautannya
jika Anda menghadapi masalah ini di mac Anda hanya perlu membuka monitor aktivitas dan memaksa cukup python kemudian coba lagi
Jika Anda menggunakan terminal layar VSC, kesalahannya mungkin karena Anda sudah menjalankan server di beberapa shell lain.
Cukup klik pada dropbox di sebelah kiri tanda + di header terminal VSC dan pilih beberapa shell lain dan periksa apakah server sudah berjalan di sana. Keluar dari server itu dan Anda siap meluncurkan server lain.
sudo lsof -i tcp:8000
lalu membunuh id proses yang muncul.