2020import signal
2121import string
2222import random
23+ import psutil
2324
2425def zh_ch (string ):
2526 """
@@ -29,15 +30,13 @@ def zh_ch(string):
2930 """
3031 return string .encode ("gbk" ).decode ('UTF-8' , errors = 'ignore' )
3132
32- def Exit (exit_number ,exit_queue = None ):
33+ def Exit (exit_number ,process_id_queue = None ):
3334 """
3435 强制结束
3536 """
36- if exit_queue :
37- for i in range (exit_queue .qsize ()):
38- process = exit_queue .get ()
39- process .kill ()
4037 time .sleep (1 )
38+ if process_id_queue :
39+ clear_process_queue (process_id_queue )
4140 os ._exit (exit_number )
4241
4342def getNumberofString (string ):
@@ -485,15 +484,12 @@ def GetExitSignal(func,*args):
485484 while not killer .kill_now :
486485 time .sleep (1 )
487486 Exit (- 1 )
488- def ldk_release (ldkqueue ,JadeLog = None ,exit_queue = None ):
487+ def ldk_release (ldkqueue ,JadeLog = None ,process_id_queue = None ):
489488 if JadeLog :
490489 JadeLog .DEBUG ("准备释放加密狗登录" , True )
491- if exit_queue :
490+ if process_id_queue :
492491 JadeLog .DEBUG ("准备清除子进程" ,True )
493- if exit_queue :
494- for i in range (exit_queue .qsize ()):
495- process = exit_queue .get ()
496- process .kill ()
492+ clear_process_queue (process_id_queue )
497493 if ldkqueue .qsize () > 0 :
498494 pyldk , handle = ldkqueue .get ()
499495 pyldk .adapter .logout (handle )
@@ -508,6 +504,18 @@ def get_file_size(filename):
508504 size = os .path .getsize (filename )
509505 return size
510506
507+ def clear_process_queue (process_id_queue ):
508+ for i in range (process_id_queue .qsize ()):
509+ clear_process (process_id_queue .get ())
510+
511+
512+ def clear_process (process_id ):
513+ process = psutil .Process (process_id )
514+ for proc in process .children (recursive = True ):
515+ proc .kill ()
516+ process .kill ()
517+
518+
511519if __name__ == '__main__' :
512520 key = "HgEWN6tv_HeVqbh7M_Q-XT6NCVETFeIspgE17Xh30Co="
513521 #encryption_model("container_det_768-576_slim.onnx","HgEWN6tv_HeVqbh7M_Q-XT6NCVETFeIspgE17Xh30Co=")
0 commit comments