![](/img/trans.png)
[英]Name process when creating it with python's subprocess.Popen()
[英]How to end the sub process when using subprocess.Popen with python?
我使用一個腳本來運行兩個腳本。 像這樣的代碼:
import subprocess
subprocess.Popen("python a.py", shell=True)
subprocess.Popen("python b.py", shell=True)
但是如果我結束主腳本,則a.py和b.py的子進程仍在運行。 怎么解決呢?
添加:
a.py和b.py是兩個服務器腳本。 當我使用ctrl + c結束主腳本時,兩個服務器都沒有結束。那么,當我結束主腳本時如何結束所有進程?
通過殺死進程。
import subprocess
p1 = subprocess.Popen("python a.py", shell=True)
p2 = subprocess.Popen("python b.py", shell=True)
# ... do things ...
p1.kill()
p2.kill()
您還可以使用atexit模塊自動執行此操作:
import subprocess
import atexit
p1 = subprocess.Popen("python a.py", shell=True)
p2 = subprocess.Popen("python b.py", shell=True)
atexit.register(p1.kill) # register for killing
atexit.register(p2.kill)
# ... do things ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.