您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

当父母在python中崩溃时杀死子进程

当父母在python中崩溃时杀死子进程

我需要atexit.register一个函数来终止该过程:

import atexit
process = subprocess.Popen(args.server_file_path)
atexit.register(process.terminate)
pid = process.pid

或许:

import atexit
process = subprocess.Popen(args.server_file_path)
@atexit.register
def kill_process():
    try:
        process.terminate()
    except OSError:
        pass #ignore the error.  The OSError doesn't seem to be documented(?)
             #as such, it *might* be better to process.poll() and check for 
             #`None` (meaning the process is still running), but that 
             #introduces a race condition.  I'm not sure which is better,
             #hopefully someone that kNows more about this than I do can 
             #comment.

pid = process.pid

请注意,如果您进行了一些令人讨厌的操作,导致python以非优雅的方式死亡(例如,通过os._exit或如果导致SegmentationFaultBusError),则这对您没有帮助

python 2022/1/1 18:27:33 有435人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶