关于rlimit的生效,查阅内核代码实现大致如下:
每个进程都有一套结构体标识rlimit限制(task->signal->rlim),该参数就是通过/proc/xxxx/limits读取的。
该结构体在进程fork时是copy的父进程的,所以要想所有的进程生效,最好是直接在init中就设置好。否则为了保险起见最好所需要的进程在通过系统调用setrlimit设置一下。
ulimit是sh脚本的内建命令,不会fork进程,在代码实现上也是调用setrlimit。也就是说如果在shell脚本里面调用了该命令,之后所有由该脚本启动的进程、子进程、子子进程都会是这个属性,除非刻意改变。
CONFIG_COREDUMP控制整个coredump功能,CONFIG_ELF_CORE控制elf bin文件的coredump生成。
limit coredump功能生效内核代码实现了解
最新推荐文章于 2024-08-14 17:11:31 发布