当前位置: 首页 > news >正文

江苏省建设考试培训网站北京医疗网站建设公司排名

江苏省建设考试培训网站,北京医疗网站建设公司排名,免费二级网站,嘉定区 网站建设小编典典 呵呵#xff0c;我昨天自己在研究这个#xff01;假设您无法更改子程序#xff1a; 在Linux上#xff0c;prctl(PR_SET_PDEATHSIG,...)可能是唯一可靠的选择。#xff08;如果绝对有必要终止子进程#xff0c;那么您可能希望将终止信号设置为SIGKILL而不是SIGTE…小编典典 呵呵我昨天自己在研究这个假设您无法更改子程序 在Linux上prctl(PR_SET_PDEATHSIG,...)可能是唯一可靠的选择。如果绝对有必要终止子进程那么您可能希望将终止信号设置为SIGKILL而不是SIGTERM链接到的代码使用SIGTERM但是子级确实可以选择忽略SIGTERM。在Windows上最可靠的选择是使用Job对象。想法是创建一个“作业”一种用于流程的容器然后将子流程放入作业中并设置魔术选项指出“当没有人握住该作业的“手柄”时然后杀死其中的进程”。默认情况下作业的唯一“句柄”是父进程持有的句柄并且当父进程死掉时操作系统将遍历并关闭其所有句柄然后注意这意味着没有用于工作。因此它会按要求杀死孩子。包含使用该win32api模块执行此操作的示例代码。该代码使用CreateProcess发射子而不是subprocess.Popen。原因是他们需要为生成的子项获取一个“进程句柄”并CreateProcess默认将其返回。如果您愿意使用subprocess.Popen那么这是该答案中代码的未经测试的副本它使用subprocess.Popen和OpenProcess代替CreateProcess import subprocess import win32api import win32con import win32job hJob win32job.CreateJobObject(None, ) extended_info win32job.QueryInformationJobObject(hJob, win32job.JobObjectExtendedLimitInformation) extended_info[BasicLimitInformation][LimitFlags] win32job.JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE win32job.SetInformationJobObject(hJob, win32job.JobObjectExtendedLimitInformation, extended_info) child subprocess.Popen(...) # Convert process id to process handle: perms win32con.PROCESS_TERMINATE | win32con.PROCESS_SET_QUOTA hProcess win32api.OpenProcess(perms, False, child.pid) win32job.AssignProcessToJobObject(hJob, hProcess) 从技术上讲这里有一个很小的比赛条件以防孩子在Popen和OpenProcess呼叫之间死亡您可以决定是否要担心这一点。 使用作业对象的一个​​缺点是在Vista或Win7上运行时如果从Windows Shell启动程序即通过单击图标则可能已经分配了一个作业对象并尝试创建一个作业对象。新的作业对象将失败。Win8可以解决此问题通过允许嵌套作业对象或者如果您的程序是从命令行运行的那么应该可以。 如果您 可以 修改子级例如像使用时一样multiprocessing那么最好的选择可能是以某种方式将父级的PID传递给子级例如作为命令行参数或者在的args参数中multiprocessing.Process然后 在POSIX上在子级中生成一个os.getppid()偶尔会调用的线程如果返回值停止匹配从父级传入的pid则调用os._exit()。这种方法可移植到包括OS X在内的所有Unix上而prctl窍门是特定于Linux的。 在Windows上在使用OpenProcess和的子代中产生一个线程os.waitpid。使用ctypes的示例 from ctypes import WinDLL, WinError from ctypes.wintypes import DWORD, BOOL, HANDLE # Magic value from http://msdn.microsoft.com/en-us/library/ms684880.aspx SYNCHRONIZE 0x00100000 kernel32 WinDLL(kernel32.dll) kernel32.OpenProcess.argtypes (DWORD, BOOL, DWORD) kernel32.OpenProcess.restype HANDLE parent_handle kernel32.OpenProcess(SYNCHRONIZE, False, parent_pid) # Block until parent exits os.waitpid(parent_handle, 0) os._exit(0) 这避免了我提到的作业对象的任何可能的问题。 如果您想真正确定那么可以组合所有这些解决方案。 希望有帮助 2020-06-02
http://www.yutouwan.com/news/495746/

相关文章:

  • 网站怎么换服务器做网站自动赚钱吗
  • 龙岗公司网站建设好看的网站首页
  • 太仓有没有做网站建设的wordpress怎样改头像
  • 昵图网素材图库免费下载网站导航优化的描述
  • 滕州市 网站建设公司广州推广网站
  • pa66用途障车做网站界面漂亮的网站
  • 网站平台建设投资费用清单wordpress设置固定链接静态化
  • 做课件挣钱的网站如何免费开网店
  • 养生网站模板网站建设座谈会上的发言
  • 西安的网站建设网站wordpress 时光轴代码
  • 网站建设网站排名东莞招聘网人才网
  • 厦门网站备案网站建设 风险
  • 西安做网站南通公司做市场调研的网站
  • 建一个信息 类网站如何注册一家公司
  • 建站边检站监控网站模板下载
  • vue做的网站有什么wordpress 访问空白
  • 30分钟网站建设教程视频有个网站专做品牌 而且价格便宜
  • 怎么自己做网站免费的百度云主机上装网站
  • 做软欧的网站九江市建设工程质量监督站网站
  • 哪个网站可以免费做招牌装饰网站建设方案
  • 自己做一个音乐网站怎么做今天发生的重大新闻内容
  • 珠海市网站开发公司电话wordpress可以做企业管理系统吗
  • 企业网站建设搜集资料易网拓做网站多少钱
  • vs2012 做网站教程电商平台推广工具有哪些
  • 个人备案网站做盈利合法吗wordpress edit_post_link
  • 山东各地网站备案wordpress网站自适应
  • 做一个公司的网站应做哪些准备免费企业cms建站系统
  • 买网站不给我备案微盟互联网公司排名
  • 凡科网站模板下载大连网站推广公司
  • 浙江建设厅网站官网网站怎么套模板