如何退出调用Django服务器的子进程?

2024-05-28 23:12:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在上的django服务器上运行otree实验localhost:8000和我想运行一个子进程,在8080上启动另一个django服务器。 如果按第一顺序调用子流程,则浏览器选项卡将不会打开。我怎样才能解决这个问题? 如何退出新服务器(和浏览器选项卡)并返回到第一个服务器?你知道吗

这是一个实验。在这个实验中,我需要打开另一个django项目,特别是我想经营一个django奥斯卡商店。你知道吗

class MyPage2(Page):

    def before_next_page(self):
       os.environ['DJANGO_SETTINGS_MODULE'] = 'shop.settings'
       subprocess.call(['py', 'shop2/manage.py', 'runserver', '0.0.0.0:8080'], shell=True)
       webbrowser.open('http://localhost:8080', new=2)

Tags: 项目djangopy服务器localhost进程defpage
1条回答
网友
1楼 · 发布于 2024-05-28 23:12:56

我不确定你到底想要什么,但是如果你想终止一个子进程,只需调用os.killpg如下:
尝试下面的代码,将call替换为Popen

import os
import signal
import subprocess

# The os.setsid() is passed in the argument preexec_fn so
# it's run after the fork() and before  exec() to run the shell.
pro = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid) 

os.killpg(os.getpgid(pro.pid), signal.SIGTERM)  # Send the signal to all the process groups

相关问题 更多 >

    热门问题