linux - Linux 父/子进程组和信号
问题描述
我有一个有趣的设置。我有一个包装脚本可以做一些事情,并启动一个子进程。我希望能够做到以下几点:
- 让包装脚本能够杀死子进程及其可能创建的任何子进程
- 确保如果包装器本身被发出信号/被杀死,它也会将其传递给子进程
据我所知,这里有点矛盾。为了满足第一个要求,据我所知,我需要在子进程的进程组上使用 killpg 。这很好,但它也会杀死包装脚本本身,因为子脚本具有父脚本的进程组。
所以现在如果我在孩子中设置pgrp以便它得到一个单独的PG,我可以正确地杀死它和它的孩子,但我没有失去第二个要求(如果包装器被杀死它不会去孩子)。
我可以通过在包装脚本中注册一个信号处理程序并通过 killpg 传递信号来解决这个问题,但是这对 SIGKILL 不起作用......这让我有点自相矛盾。
有什么可能的解决方案吗?
解决方案
推荐阅读
- php - 在 Laravel 中在 db 结果上附加一列
- javascript - 自动更新 MongoDB 中的文档?
- javascript - React JS 功能组件中的复选框未更新
- typescript - 索引对象的打字稿参考值
- laravel - 如何使用实时服务器中的干预在 laravel 中创建缩略图?
- node.js - 如何使用 nodejs 创建具有特定域的 api 端点或 api?
- kubernetes - Kubernetes Pod 一次性初始任务
- vba - 如何仅替换字符串中的某些空格?
- omnet++ - 如何从 omnet++ 中的 c++ 代码访问运行时 queueLength 参数?
- sql - 将长 SQL 代码放入 VBA Excel 的最简单方法是什么?