I have three .py files that I want to run at the same time in a Python script file. I initially called subprocess.call()
three times (once for each .py file) but remembered that it blocks until the command is finished. I tried subprocess.Popen(['screen', 'python_file'])
since I believe it doesn't block but when I was checking for the processes with screen -ls
there was only one process running. How do I get all three programs running at the same time with a Python script? Should I be using the multiprocessing
or multithreading
library?
Edit: The other processes aren't supposed to finish since they're running in an infinite loop. Here's exactly what I had in my Python script file. I'm using screen
because each .py file has stdout logged onto the terminal and I want to be able to see what is being logged for each one.
subprocess.Popen(['screen', './submitter.py'])
subprocess.Popen(['screen', './worker.py'])
subprocess.Popen(['screen', './tester.py'])
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…