我正在尝试将shell脚本移植到更易读的python版本.原始shell脚本在后台使用"&"启动多个进程(实用程序,监视器等).如何在python中实现相同的效果?我希望这些进程不会在python脚本完成时死掉.我确信它与守护进程的概念有某种关系,但我无法轻易找到如何做到这一点.
我尝试了这两种方法:
os.system("python test.py")
subprocess.Popen("python test.py", shell=True)
Run Code Online (Sandbox Code Playgroud)
两种方法都需要等到test.py完成才能阻止主进程.我知道"nohup"可以胜任这项工作.是否有Python方法来启动test.py或任何其他shell脚本并让它在后台运行?
假设test.py是这样的:
for i in range(0, 1000000):
print i
Run Code Online (Sandbox Code Playgroud)
os.system()或subprocess.Popen()都将阻止主程序,直到显示1000000行输出.我想要的是让test.py以静默方式运行并仅显示主程序输出.当test.py仍在运行时,主程序可能会安静.
我正在创建一个Django应用程序,它对上传的文件进行各种长计算.我不想让用户等待处理文件 - 我只是想向用户显示一个页面,读取的内容类似于"正在解析文件".
如何从视图中进行异步函数调用?
可能看起来像这样的东西:
def view(request):
...
if form.is_valid():
form.save()
async_call(handle_file)
return render_to_response(...)
Run Code Online (Sandbox Code Playgroud) 我的python脚本需要启动后台进程,然后继续处理完成而不等待返回.
后台脚本将处理一段时间,不会生成任何屏幕输出.
不需要进程间数据.
我尝试过使用各种方法子进程,多处理,但显然缺少一些东西.
有没有人有一个简单的例子?
TIA