如何解决subprocess.call nohup&-不在后台运行进程 更新:
我有一个运行Scrapy spider的函数(Django admin)。该功能正常工作。我现在想做的是使其不阻塞。
这按预期工作-我需要等待SH SCRIPT的完成。因此,基本上,我单击此操作,浏览器正在等待抓取结束。
subprocess.call([settings.CRAWL_SH_ABS_PATH,"db_profiles_spider","ids",ids])
我希望它不受阻碍,以便浏览器立即刷新。
我尝试过:
subprocess.call(["nohup",settings.CRAWL_SH_ABS_PATH,ids,'&'])
但是它似乎正在阻塞,浏览器正在等待响应。为什么?我该如何运作?
解决方法
&
是用于shell的,因此请尝试如下操作:
cmd = ' '.join(["nohup",settings.CRAWL_SH_ABS_PATH,"db_profiles_spider","ids",ids,'&'])
subprocess.call(cmd,shell=True)
更新:
对我来说,它也可以不使用nohup
而使用。
您还可以创建一个线程并在该线程中运行命令。也可以os.fork()
并在子进程中运行命令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。