我有一个樱桃应用程序,我用pyinstaller制作了一个exe。 现在,当我运行exe时,它会将自身加载到内存中两次。观察任务管理器显示第一个实例加载到大约1k,然后一秒钟后,第二个实例加载到大约3k ram。如果我关闭较大的一个,两个进程都会死掉。如果我关闭较小的一个只有一个死亡。
使用子进程加载exe,如果我尝试proc.kill(),它只会杀死小的,而另一个在内存中运行。这是一起使用cherrypy和pyinstaller的副作用吗?
答案 0 :(得分:5)
PyInstaller在启动过程中会生成一个子进程。这在a section of its manual中解释。
答案 1 :(得分:1)
了解您正在使用的CherryPy版本非常重要。 2.x系列有一个不幸的设计:autoreloader功能总是启动CherryPy的第二个实例,所以第一个实例可以在孩子被杀死时重生。在版本3中修复了它只使用一个进程。如果您使用的是版本2,请通过配置条目关闭自动加载功能:
[global]
autoreload.on = False