views:

49

answers:

2

I have a cherrypy app that I've made an exe with pyinstaller. now when I run the exe it loads itself twice into memory. Watching the taskmanager shows the first instance load into about 1k, then a second later a second instance of hte exe loads into about 3k ram. If I close the bigger one both processes die. If I close hte smaller one only that one dies.

Loading the exe with subprocess, if I try to proc.kill(), it only kills the small one leaving the other running in memory. Is this a sideeffect of using cherrypy and pyinstaller together?

A: 

It would be important to know what version of CherryPy you are using. The 2.x line had an unfortunate design: the autoreloader feature always started a second instance of CherryPy, so the first could respawn the child when it was killed off. That was fixed in version 3 to only use one process. If you are using version 2, turn off the autoreload feature via the config entry:

[global]
autoreload.on = False
fumanchu
+1  A: 

PyInstaller spawns a subprocess during its boot process. This is explained in a section of its manual.

Giovanni Bajo