Is it possible to renice a subprocess?
nice, python, renice, subprocess
Solution
Use the `preexec_fn` parameter of `subprocess.Popen`:
If `preexec_fn` is set to a callable object, this object will be called in the child process just before the child is executed. (Unix only)
Example:
>>> Popen(["nice"]).communicate()
0
(None, None)
>>> Popen(["nice"], preexec_fn=lambda : os.nice(10)).communicate()
10
(None, None)
>>> Popen(["nice"], preexec_fn=lambda : os.nice(20)).communicate()
19
(None, None)
Problem
I know about `os.nice()` it works perfect for parent process, but I need to do renice of my child subprocesses. I found way to do this, but it seems to be not very handy and too excessive: ``` os.system("renice -n %d %d" % ( new_nice, suprocess.pid ) ) ``` And it isn't return resulting nice level after renicing. Is there more clean way to renice subprocesses in python?