当前位置: 首页 > 知识库问答 >
问题:

SIGCHLD 是否在 SIGTERM 上调度?

公羊灿
2023-03-14

SIGCHLD的维基百科页面说:

当子进程退出、被中断或中断后恢复时,SIGCHLD信号被发送给子进程的父进程。

这是否意味着当父进程向子进程发送任何信号(如 SIGTERM)时,它将反过来接收来自子进程的 SIGCHLD

或者我误解了中断(我假设它是指接收到的任何信号),在这种情况下,哪些信号是相关的?

共有1个答案

赵才俊
2023-03-14

在以下情况下,SIGCHLD会传递给父代:

  • 子进程退出
  • 子进程由SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU信号停止。
  • 子进程通过SIGCONT信号恢复

我假设SIGSTOP/SIGCONT是wikipedia所说的“中断”的意思。

SIGTERM的默认处理程序是终止进程。因此,如果父进程将SIGTERM发送到终止该子进程的子进程,则是-父进程将收到一个SIGCHLD。

如果子级安装的信号处理程序没有终止它,则不会将SIGCHLD信号传递给父级。

 类似资料:
  • 问题内容: 尽管JVM会将SIGTERM和类似的信号转换为关闭挂钩,但是许多服务关闭脚本使用TCP端口启动关闭。(例如,Tomcat的关闭端口,Java Service Wrapper ,JBoss的管理接口等) 所以我认为不建议使用信号和关闭钩子来正常关闭Java服务,直到发现Play!框架通过关闭钩子管理服务生命周期,并且由生成的启动脚本假定将信号发送到JVM的PID。 我知道信号是与平台相关

  • 问题内容: 在运行Linux 2.6.35+的系统中,我的程序创建了许多子进程并对其进行监视。如果子进程死了,我会进行一些清理并再次产生该进程。我经常在过程中获取信号。与异步使用。 当将信号处理程序用于非实时信号时,当信号处理程序针对特定信号运行时,必须阻止同一信号的进一步出现,以避免进入递归处理程序。如果此时有多个信号到达,则内核仅调用一次处理程序(当信号被解除阻塞时)。 使用时是否具有相同的行

  • 问题内容: 我无法通过一些Google搜索找到权威的答案。在Java Servlet中,可以通过response.getOutputStream()或response.getWriter()访问响应主体。写入流后,是否应该在此流上调用.close()? 一方面,Blochian鼓励始终关闭输出流。另一方面,我不认为在这种情况下有需要关闭的基础资源。套接字的打开/关闭在HTTP级别进行管理,以允许诸

  • 我可以安全地将持久化viewmodel数据的代码放入viewmodel的方法中吗?如果应用程序由于任何原因被终止或结束,那么这是否保证了ViewModel的数据将被放在持久存储中,或者是否存在不能调用的情况?

  • 请想象一些子进程是由pcntl_fork()生成的,它们分别使用PDO打开mysql连接。如果父进程向子进程发送带有posix_kill()的SIGTERM信号,子进程将立即被杀死。 所以,我对此有一个疑问。当子进程终止时,它是否也会自动关闭mysql连接?或者我应该调用out()函数? 我知道如果发送了SIGKILL,子进程会保持连接。但是,我不知道SIGTERM的情况。

  • 我想知道是否有类似于对象实例的函数创建的东西,也许有类似的东西? 这段代码是写的,例如,它也不工作