> So at first you have to find out, why this process dies. > > Unfortunately you say nothing about the second program. Does it run if > started manually?
The second program, which is the child process, runs on its own if I run it alone. It’s a GUI using PyQt and Qt. It sets up a second Twisted loop in the child process, which allows that process and the main one to communicate with each other over pipes in an asynchronous fashion over pipes. > Did you try with a *simple* second program like "import time; > time.sleep(300)”? Yes. It also does not work. Neither does the stub program provided by Ampoule, nor an empty second program. All of these work in case they’re not packaged. The symptom is the same, Ampoule is trying to spawn an infinite number of processes. I also tested Twisted’s own spawnProcess, which does not have this issue and runs perfectly. So whatever is creating the problem is inside Ampoule. > > Are you sure about this? See <http://pythonhosted.org/PyInstaller/#id60> > > "sys.executable ... In a bundled app, it is the path to the bundled > executable.” This might be the culprit. I’ll take a deeper look into this part. > BTW: The git-repo of aether is called "aether-public". Is this the complete > source, or is there also a private part? Yes, it’s entirety of the source code. I do have a private repo, but the the few differences are that it has my full git work history, i.e. breaking commits that get reverted etc, and my own feature tracker. I push to the public repo on every new version release. The current version there is 1.1, the one in question here. If you want to give a shot running it on your local machine, you can grab the code and follow the ‘Dependencies’ part of this blog post: http://blog.getaether.net/post/79723395145/aether-v1-1-is-here If you have PyQt5 / Qt installed, it should be fairly straightforward. Best, Burak On Apr 6, 2014, at 12:43 PM, Hartmut Goebel <[email protected]> wrote: > Am 05.04.2014 23:57, schrieb Burak Nehbit: >> 1) It is specified Ampoule behaviour to restart dead processes, that’s where >> the repeated new processes come from. The second process dies very early in >> its lifetime. > > So at first you have to find out, why this process dies. > > Unfortunately you say nothing about the second program. Does it run if > started manually? Did you try with a *simple* second program like "import > time; time.sleep(300)"? > >> p = os.path.split(imp.find_module(pkg)[1])[0] > > I doubt this is helping anything, since most modules' path will be pointing > into the executable. > >> return reactor.spawnProcess(processProtocol, sys.executable, args, >> env, path, uid, gid, usePTY) > > Are you sure about this? See <http://pythonhosted.org/PyInstaller/#id60> > > "sys.executable ... In a bundled app, it is the path to the bundled > executable." > > BTW: The git-repo of aether is called "aether-public". Is this the complete > source, or is there also a private part? > > -- > Schönen Gruß > Hartmut Goebel > Dipl.-Informatiker (univ), CISSP, CSSLP > Information Security Management, Security Governance, Secure Software > Development > Goebel Consult, Landshut > http://www.goebel-consult.de > > Blog: http://www.goebel-consult.de/blog/kurzanalyse-disconnect.me > Kolumne: > http://www.cissp-gefluester.de/2011-09-kommerz-uber-recht-fdp-die-gefaellt-mir-partei > > Goebel Consult ist Mitglied bei http://www.7-it.de/ >
smime.p7s
Description: S/MIME cryptographic signature
