Ошибка: этот порт уже используется.

99

когда я пытаюсь перезапустить его отображающее сообщение django:

этот порт уже запущен.

эта проблема специально на ubunut 10.x не все OS.how я могу добиться этого в текущей системе, над которой я работаю?  вы можете мне предложить?

Теги:

6 ответов

262
Лучший ответ

Более простое решение просто введите sudo fuser -k 8000/tcp. Это должно убить все процессы, связанные с портом 8000.

EDIT:

Для пользователей osx вы можете использовать sudo lsof -t -i tcp:8000 | xargs kill -9

  • 2
    Большой !!!! действительно очень просто :) Спасибо
  • 18
    На Mac вам нужно использовать sudo lsof -i tcp:8000 затем уничтожить идентификаторы процессов, которые отображаются.
Показать ещё 5 комментариев
17
netstat -ntlp

Он покажет что-то вроде этого.

   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     

Теперь просто закройте порт, в котором запущен Django/python, убив связанный с ним процесс.

kill -9 PID

в моем случае

kill -9 6599

Теперь запустите приложение Django.

  • 1
    Лучший !! Легко запомнить !! Эффективно!
  • 1
    Спасибо и продолжайте делиться :)
Показать ещё 1 комментарий
8
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
  • 0
    Таким образом, вы пытаетесь запустить сервер снова, в то время как один уже запущен? Это не сработает, так как первый будет использовать порт HTTP. Вы должны убить или прекратить первый, прежде чем пытаться запустить снова (по крайней мере, запустить его на том же порту).
  • 0
    это работает нормально, я проверил это.
Показать ещё 3 комментария
2

Это расширение на ответ Мунира. Я добавил bash script, который охватывает это для вас. Просто запустите ./scripts/runserver.sh вместо ./manage.py runserver, и он будет работать точно так же.

#!/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
1

Мы не используем эту команду {sudo lsof -t -i tcp: 8000 | xargs kill -9} Потому что он закрывает все вкладки... Вы должны использовать

ps -ef | grep python

kill -9 process_id

ps -ef | grep python (показать весь процесс с id)

kill -9 11633 (11633 - это идентификатор процесса для: -/bin/python manage.py runningerver)

0

ps aux | grep manage

ubuntu 3438 127.0.0 2.3 40256 14064 pts/0 T 06:47 0:00 python manage.py runningerver

kill -9 3438

  • 1
    Хотя этот фрагмент кода может решить вопрос, в том числе объяснение действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код. Также постарайтесь не переполнять ваш код пояснительными комментариями, это снижает удобочитаемость кода и пояснений!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню