Python 捕获terminate信号优雅关闭进程

   日期:2024-01-17     浏览:43    评论:0    

 

信号捕获在window上测试没有生效,在Linux上测试生效

 1 import multiprocessing
 2 import time
 3 import signal
 4 import os
 5 import random
 6 
 7 sid = 0   # 全局变量,进程之间的变量是否独立测试
 8 
 9 def myhandler(signum, frame):
10     global sid
11     print(signum)
12     print(sid)
13     print("del del")
14     exit()
15 
16 def test():
17     global sid
18     signal.signal(signal.SIGTERM, myhandler) # 定义捕获信号和关闭时的处理函数
19     counter = 0
20     sid = random.randint(0,100)
21     while True:
22         print(counter, sid)
23         counter +=1
24         time.sleep(1)
25 
26 
27 if __name__=="__main__":
28     p = multiprocessing.Process(target=test)
29     p.start()
30     p1 = multiprocessing.Process(target=test)
31     p1.start()
32     p1.join(5)
33     if p1.is_alive():
34         print(p1.pid)
35         print("Process Timeout, be Terminated !!!")
36         p1.terminate() # 发送关闭信号
37         p1.join()
38         p.terminate()
39         p.join()
40     print(sid)

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服