如何在不单击“CTRL + C”的情况下通过 cmd 中的命令停止 Django 服务器?

Sas*_*uev 1 python django cmd

我正在 PySide2 上编写我的桌面应用程序(这并不重要)以控制 Django 项目(在按钮上运行服务器和停止服务器)。我意识到只启动服务器,但我不能添加停止服务器,因为停止服务器是单击"CTRL + C"cmd 中的按钮,我现在不知道如何将单击按钮解释为代码或此问题的任何答案。

这是“运行服务器”的示例,我需要“停止服务器”的帮助

os.chdir(ui.lineEdit.text())   # Change directory
os.system("python manage.py runserver")   # Run server in this
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 5

Ctrl+C是终端解释的东西。它将向SIGINT正在运行的进程发送信号。因此,终止应用程序的不是Ctrl+C本身。

您也可以这样做,例如首先使用 来打开一个进程Popen(..),然后最终发送一个信号:

from subprocess import Popen
from signal import SIGINT

# start the process
p = Popen(['python', 'manage.py', 'runserver'])

# now stop the process
p.send_signal(SIGINT)
p.wait()
Run Code Online (Sandbox Code Playgroud)