我发现了一些文章,甚至堆叠| 溢出问题解决了这个问题,但我还是不能这样做..
我想要做的是从python打开一个firefox实例。然后python应用程序应该继续关注自己的业务并忽略firefox进程。
我能够使用以下方法在Windows-7和XP上实现这一目标:
subprocess.Popen()
在OS X上我尝试过:
subprocess.Popen(['/Applications/Firefox.app/Contents/MacOS/firefox-bin'])
subprocess.call(['/Applications/Firefox.app/Contents/MacOS/firefox-bin'])
subprocess.call(['/Applications/Firefox.app/Contents/MacOS/firefox-bin'], shell=True)
os.system('/Applications/Firefox.app/Contents/MacOS/firefox-bin')
(可能还有其他一些我忘记了)无济于事。我的python应用程序冻结,直到我去关闭firefox应用程序。
我在这里缺少什么?任何线索?
答案 0 :(得分:3)
显示我的意思:
import os
if not os.fork():
os.system('firefox')
os._exit(0)
不退出主Python进程的版本:
import os
if not os.fork():
os.system('firefox')
os._exit(0)
答案 1 :(得分:2)
你需要以某种方式分离这个过程。我从spawning process from python
抓取了这个import os
pid = os.fork()
if 0 == pid:
os.system('firefox')
os._exit(0)
else:
os._exit(0)
这会生成相同脚本的分叉无头版本,然后可以随意执行任何内容,然后直接退出。