【问题标题】:Can a linux parent process protect the child process from a signal?linux父进程可以保护子进程免受信号影响吗?
【发布时间】:2016-04-19 20:44:47
【问题描述】:

我有一个应用程序(在 Java BTW 中),它将第三方命令行实用程序作为子进程分叉。当给这个应用程序一个信号比如 SIGTERM 时,我注意到这个信号也被转发到所有子进程。

我可以在网上找到很多关于如何在进程中处理信号的资料,但我无法控制第三方工具选择如何处理它们的信号。

理想情况下,我想在我的应用程序中做的是阻止任何传入信号级联到我的孩子,并自己处理它们。据我所知,实现我自己的信号处理程序并不能阻止信号独立传播给我的孩子。

【问题讨论】:

    标签: java linux signals parent-child


    【解决方案1】:

    如果 kill 信号被发送到整个组(使用 killpg() 系统调用),所有进程都应该收到它。

    为了保护孩子,孩子要么需要配置信号处理程序和/或sigprocmask,要么你需要ptrace孩子并拦截信号传递)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2011-05-26
      相关资源
      最近更新 更多