gpt4 book ai didi

c - 为什么 seccomp 进程总是被杀死?

转载 作者:可可西里 更新时间:2023-11-01 11:50:18 30 4
gpt4 key购买 nike

为什么进入 seccomp 模式的进程总是在退出时被杀死?

$ cat simple.c 
#include <stdio.h>
#include <stdlib.h>
#include <linux/prctl.h>

int main( int argc, char **argv )
{
printf("Starting\n");
prctl(PR_SET_SECCOMP, 1);
printf("Running\n");
exit(0);
}
$ cc -o simple simple.c
$ ./simple || echo "Returned $?"
Starting
Running
Killed
Returned 137

最佳答案

在手册页中,在 PR_SET_SECCOMP 下,唯一允许的系统调用是 read、write、exit 和 sigreturn。

当你在标准库(在最近的 Linux 中)中调用 exit(0) 时,你调用的是 exit_group 系统调用,而不是 exit。这是不允许的,因此您会收到一个 SIGKILL。

(如果你跟踪这个过程,你可以看到这个......)

关于c - 为什么 seccomp 进程总是被杀死?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10114583/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com