If I have a script (process run.py) that will run 3 subprocesses A.py, B.py, C.py (3 scripts called at same time through process run.py).
p= subprocess.Popen(['python3', '-u', 'A.py'])
p2 = subprocess.Popen(['python3', '-u', 'B.py'])
p3 = subprocess.Popen(['python3', '-u', 'C.py'])
The operation is fine. However say in b.py i have a line such as
reply = input( do you want to continue this action y/n :)
if reply.lower == 'yes':
take this action()
elif reply.lower == 'no' :
take other action()
(pref) How can i get subprocess of A.py and c.py to wait/pause for 5seconds, in order for user to enter y or no or wait in order for user to enter y or no
A basic confirm prompt in terminal. However the problem I face is A.py B.py running not allowing the confirmation which would start a different task/process/script.
Guidance here would be warmly welcomed.
You must use an external system to let the processes communicate between them.
The external system can be as simple as writing in a file some codes and having all the processes checking the state of the files.
B.py
with open("my.lock", "w") as f:
f.write("a")
reply = input( do you want to continue this action y/n :)
if reply.lower == 'yes':
take this action()
elif reply.lower == 'no' :
take other action()
os.remove("my.lock")
A.py or C.py
import os
import time
while os.path.isfile("my.lock"):
time.spleep(1)
# then your logic
A more sophisticated solution would be to have a message broker (RabbitMQ, Kafka...).