簡體   English   中英

django開發服務器,后台運行時如何停止?

[英]django development server, how to stop it when it run in background?

我使用雲服務器測試我的django小項目,我輸入manage.py runserver然后我退出我的雲服務器,我可以正常訪問我的網站,但是當我重新加載我的雲服務器時,我不知道如何停止開發服務器,我必須殺死進程才能停止它,有沒有辦法停止開發?

答案可以通過谷歌找到——並在其他論壇中得到解答。 Unix & Linux StackExchange 站點上提供了示例解決方案。

明確地說,你可以這樣做:

ps auxw | grep runserver

這將返回進程及其各自的 PID,例如:

de        7956  1.8  0.6 540204 55212 ?        Sl   13:27   0:09 /home/de/Development/sampleproject/bin/python ./manage.py runserver

在這種特殊情況下,PID 是7956 現在只需運行它來停止它:

kill 7956

為了清楚/解決一些評論,您必須這樣做,因為您在后台運行開發服務器(命令中的& )。 這就是為什么沒有“內置”的 Django 停止選項......

一個班輪..

pkill -f runserver

好吧,這似乎是 django 沒有提供停止開發服務器的命令的錯誤。 之前還以為有呢~~~~~

據我所知 ctrl+c 或 kill process 只是在遠程機器上執行此操作的方法。 如果您將使用 Gunicorn 服務器或類似的東西,您將能夠使用 Supervisor 做到這一點。

Ctrl+c 應該可以工作。 如果沒有 Ctrl+/ 將強制終止進程。

我們可以使用以下命令。

-> netstat -ntlp

然后我們將獲得使用PID運行的進程數,找到我們的python服務器PID和Kill進程。

-> 殺死 -9 PID

例如:
在此處輸入圖片說明

在任務管理器中,您可以結束正在運行的 Python 任務。 現在從你的項目目錄運行python manage.py runserver ,它會工作。

嘗試這個

lsof -t -i tcp:8000 | xargs kill -9

在 Windows 的Command Prompt中以編程方式使用.bat腳本:

@ECHO OFF
SET /A port=8000
FOR /F "tokens=5" %%T IN ('netstat -ano ^| findstr :%port%') DO (
    SET /A processid=%%T
    TASKKILL /PID %%T /F
)

SUCCESS: The process with PID 5104 has been terminated.

這在 windows 上對我有用。

使用以下命令列出所有連接和偵聽端口 (-a) 及其 PID (-o)。

netstat -a -o

查找進程的PID

然后使用它來殺死進程

taskkill /PID PUT_THE_PID_HERE /F

您可以通過按CTRL-BREAK退出服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM