当前位置: 首页 > 面试题库 >

如何等待非子进程退出

太叔鹏云
2023-03-14
问题内容

对于子进程,wait()waitpid()函数可用于暂停当前进程的执行,直到子进程退出。但是此功能不能用于非子进程。

是否有另一个函数可以等待任何进程的退出?


问题答案:

什么都不等于wait()。通常的做法是使用轮询kill(pid, 0),寻找返回值-1和errnoESRCH,表明进程已经一去不复返了。



 类似资料:
  • 进程退出和等待进程 当进程执行完它的工作后,就需要执行退出操作,释放进程占用的资源。ucore分了两步来完成这个工作,首先由进程本身完成大部分资源的占用内存回收工作,然后由此进程的父进程完成剩余资源占用内存的回收工作。为何不让进程本身完成所有的资源回收工作呢?这是因为进程要执行回收操作,就表明此进程还存在,还在执行指令,这就需要内核栈的空间不能释放,且表示进程存在的进程控制块不能释放。所以需要父进

  • 如果你想等待 process::Child 完成,就必须调用 Child::wait,这会返回一个 process::ExitStatus。 use std::process::Command; fn main() { let mut child = Command::new("sleep").arg("5").spawn().unwrap(); let _result = chi

  • 我希望能够在后台启动一大批工作,而不使用bash脚本,并继续在同一个内核上工作。这有可能吗?我对架构变化持开放态度,但我的库的最终用户可能不是很复杂。 表示ipython单元 python 3.7。6从JupyterLab内部

  • 问题内容: 如何在Windows上的Python中等待多个子进程,而无需主动等待(轮询)?这样的事情 几乎 对我有用: 问题是,当之前完成时,父进程仍将等待。在Unix上,人们会在循环中使用它们来获取子进程的返回代码,这些代码在完成时如何在Windows上的Python中实现类似功能? 问题答案: 可能看起来有些矫kill过正,但是,在这里:

  • 问题内容: 我正在编写一个Python程序,用于在Linux服务器上运行用户上传的任意代码(因此,在最坏的情况下,就是不安全,错误和崩溃的代码)。除了安全性问题外,我的目标是确定代码(可能以任何语言编写,编译或解释的)是否将正确的内容写入,以及是否将给定输入的其他文件写入程序的。之后,我需要向用户显示结果。 目前,我的解决办法是使用产卵子进程与文件句柄,和。后面的文件句柄包含了操作过程中的程序读取

  • 问题内容: 我正在使用ProcessBuilder启动子进程,并且如果父进程确实需要退出子进程。在正常情况下,我的代码可以正确阻止孩子。但是,如果我导致操作系统杀死父进程,则子进程将继续运行。 有什么方法可以将子进程“绑定”到父进程,以便在父进程被杀死时退出? 问题答案: 子进程与其父进程之间没有联系。他们可能彼此知道进程ID,但是它们之间没有硬连接。您在谈论孤立过程。这是操作系统级别的问题。意味