Python,使用os.system - Python脚本是否有办法在不等待调用完成的情况下移过它?

Ric*_*ick 6 python django command-line os.system

我正在尝试使用Python(通过Django框架)进行Linux命令行调用,并尝试了os.system和os.open,但对于这两种情况,似乎Python脚本在将命令行调用作为调用后挂起用于实例化服务器(因此它永远不会"完成",因为它意味着长时间运行).我知道用其他Python代码做这样的事情你可以使用像芹菜这样的东西,但我想有一个简单的方法来让它只是做一个命令行调用而不是"绑在一起",这样它就可以移动过去,我想知道我做错了什么......感谢任何建议.

我正在这样打电话

os.system("command_to_start_server")
Run Code Online (Sandbox Code Playgroud)

还尝试过:

response = os.popen("command_to_start_server")
Run Code Online (Sandbox Code Playgroud)

gsp*_*spr 9

我不确定,但我认为带有Popen 的子进程模块比os.popen灵活得多.如果我没记错的话,它包括异步进程生成,我认为这是你正在寻找的.

编辑:我使用子进程模块已经有一段时间了,但是如果我没有弄错的话,subprocess.Popen立即返回,并且只有当你尝试使用subprocess.communicate与进程通信(例如读取它的输出)时才会如果没有,则程序块等待输出.