Django Server Error: port sudah digunakan


204

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:


536

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


23
Di mac Anda perlu menggunakan sudo lsof -i tcp:8000lalu membunuh id proses yang muncul.
Gordonc

Jadi, apa pun port tersebut, ganti 8000 dengan port yang terjadi.
Manish Shrivastava

Saya mendapatkan kesalahan ini, tetapi saya telah membunuh semuanya di pelabuhan.
wanderer0810

57
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.


untuk ini, kita perlu menginstal net-tools.
Pooja Khatri

11
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

Jadi Anda mencoba memulai server lagi, sementara yang satu sudah berjalan? Itu tidak akan berfungsi karena yang pertama akan menggunakan port HTTP. Anda harus membunuh atau menghentikan yang pertama, sebelum mencoba menjalankan lagi (setidaknya jalankan di port yang sama).
Beberapa programmer Bung

Ini bekerja karena Anda membunuh instance yang sedang berjalan, dan itulah yang saya katakan harus Anda lakukan. Anda tidak dapat memiliki dua program mendengarkan pada port jaringan yang sama, semudah itu. Jadi ini adalah solusi untuk sesuatu yang tidak benar-benar masalah, hanya fakta.
Beberapa programmer Bung

Aku minta maaf jika aku menjadi kuat, aku hanya merasa sedikit kesal hari ini. : /
Beberapa programmer Bung

5

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

1
@StephenRauch, pertanyaannya tidak meminta WHO menggunakan port. Pertanyaannya adalah menyatakan kesalahan yang dilemparkan. Ini adalah solusi tentang cara memperbaiki kesalahan itu.
Freddy

OP menanyakan cara me-restart server pada port 8000, tidak meminta untuk menjalankannya pada port lain
uclaastro

4

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)


2

Ini adalah perluasan dari jawaban Mounir. Saya telah menambahkan skrip bash yang mencakup ini untuk Anda. Jalankan saja ./scripts/runserver.shalih-alih ./manage.py runserverdan 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

2

Maaf atas komentar di pos lama tetapi ini dapat membantu orang

Ketikkan ini di terminal Anda

killall -9 python3

Ini akan membunuh semua python3 yang berjalan di mesin Anda dan itu akan membebaskan semua port Anda. Sangat membantu saya kapan harus bekerja di proyek Django .


1

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 -9ketika 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.


1

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


0

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


2
Sementara potongan kode ini dapat menyelesaikan pertanyaan, termasuk penjelasan sangat membantu untuk meningkatkan kualitas posting Anda. Ingatlah bahwa Anda menjawab pertanyaan untuk pembaca di masa depan, dan orang-orang itu mungkin tidak tahu alasan untuk saran kode Anda. Tolong juga cobalah untuk tidak membuat kerumunan kode Anda dengan komentar penjelasan, ini mengurangi keterbacaan kode dan penjelasan!
rene


0

jika Anda menghadapi masalah ini di mac Anda hanya perlu membuka monitor aktivitas dan memaksa cukup python kemudian coba lagi

masukkan deskripsi gambar di sini



0

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.