我有一个Linux进程(C程序),它产生了几个子进程。我想禁止在系统级别的那些子进程中进行另一次分叉,这样如果他们试图分叉那些进程就会被杀死。怎么实现呢?我更喜欢将此策略嵌入主机C代码中。 setrlimit(2)
能做到吗?
答案 0 :(得分:1)
是的,setrlimit()可以做到这一点。请参阅手册页并阅读
RLIMIT_NPROC
最大的进程数(或者更准确地说是在Linux上,线程) 可以为调用进程的真实用户ID创建。遇到这个 限制,叉(2) 因错误EAGAIN而失败。
或者,您可以使用/etc/security/limits.conf
为流程设置硬限制。查看文件中的一些示例。
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0