Python wsgi OSError: [Errno 10] No child process
OSError [Errno 10] no child processes can mean the program ran, but took too much memory and died.
Starting jobs within Apache is fine.  Running as root is a bit sketchy, but isn't that big of a deal.  Note that the 'root' account setup, like PATH, might be different from your account. This would explain why it runs from the shell but not from Apache.
In your program log the current directory. If the script requires a certain module in a certain location, then that would cause weird problems.  Also 'root' tends to not have "current directory" (ie: ".") on the sys.path.
I have a python wsgi script that is attempting to make a call to generate an openssl script.  Using subprocess.check_call(args), the process throws an OSError [Errno 10] no child processes.
The owner of the opensll bin is root:root. Could this be the problem? Or does apache not allow  for child processes?
Using just the subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) seems to work fine, I just want to wait and make sure the process finishes before moving on.  
communicate() and wait() both fail with the same error.
Running it outside of wsgi the code works fine.
This is python 2.6 btw.