linux - 不允许程序杀死任何未关联的进程
问题描述
我目前正在学习如何使用系统调用,例如 fork、exec* 和 kill。如果其中一个 fork 调用失败,我有一项任务需要将 SIGKILL 发送到使用 fork 创建的所有父母的兄弟姐妹。所以我做了这样的事情:
for (int i = 0; i < numOfchilds; i++) {
childs[i] = fork();
if (childs[i] == -1)
killAll(childs, i);
...
void killAll(pid_t childs, size_t numOfChilds) {
for (int i = 0; i < numOfChilds; i++)
kill(childs[i], SIGKILL);
}
但我搞砸了,不小心发送kill(-1, SIGKILL)
并杀死了所有我能做到的进程。幸运的是,我没有丢失任何未保存的数据,但这kill -9 -1
并不是注销的最佳做法。
所以。有什么办法可以限制我的程序杀死任何不属于它的进程,所以它只能杀死它用 fork 创建的一个?
解决方案
推荐阅读
- html - html(引导页面)中的视频横幅布局不正确
- python - 灰色错误 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY
- swift - 两个问题 1. 没有辅助结果 2. 无法插入新的连接插座
- arrays - 如何在“C”中的任何函数内声明全局变量?
- ssh-tunnel - 使用 PgAdmin 4 设置 SSH 隧道
- javascript - 如何在 django 静态文件中导入节点包(静态文件夹中的任何自定义 js 文件)?
- reactjs - 直接调用我的自定义获取组件,而无需使用基于 useState 的变量
- javascript - 验证数字范围
- c# - 如何不调试引用的 dll?
- sql - 在 Impala 中使用 NULL 列创建表作为 Select