Process started with subprocess module goes to sleep
linux, python, subprocess
Solution
You are piping the output of the subprocess. It will sleep when its buffer is full - did you remember to read stdout from the subprocess?
You could use the `communicate` method if you don't mind it blocking, or read from the `stdout` file descriptor, or maybe send the stdout to /dev/null since you don't seem to be using it.
Problem
I have a process that is started via `subprocess.Popen()` which is meant to run indefinitely. The problem i was having was that the process seemed to stop running after about 20 seconds. Sure enough when i check `top`, it shows that the process is going to sleep. When i run the command manually this doesn't happen. Anyone know how I can stop this from happening? This is the subprocess call: ``` aireplay = subprocess.Popen('aireplay-ng -3 -b ' + target.mac + ' ' + interface, shell=True, stdout = subprocess.PIPE, stderr = DN) time.sleep(5) starttime = time.time() ivs = 0 second = False print 'Sending deauth to generate arps...' send_deauth(target) while time.time() - starttime < 1200: targets = parsecsvfile('crackattempt') print 'Captured ' + str(ivs) + ' ivs.' print aireplay.poll() if len(targets[0]) > 0: target = targets[0][0] if ivs > 20000: break else : ivs = int(target.ivs) time.sleep(1) ```